IO多路复用 epoll & IOCP
select、poll、epoll 与 IOCP 四种 I/O 事件机制对比,涵盖原理、数据结构、复杂度分析和跨平台实践,适合后端工程师理解高性能网络编程的基础。
select、poll、epoll 与 IOCP 四种 I/O 事件机制对比,涵盖原理、数据结构、复杂度分析和跨平台实践,适合后端工程师理解高性能网络编程的基础。
本文拆解一个C++游戏任务服务的高并发架构,涵盖epoll多Reactor、四层异步流水线、反向索引过滤、Redis分布式锁与冷热分离等核心设计,适合后端工程师学习高并发实践。
一、背景 环境信息:生产环境、MongoDB 分片集群、版本 7.0.14 集群架构:2 个 Mongos 路由节点、3 个 Shard 分片、单个 Shard 为 3 节点副本集 业务关联:供 HIS-GSS 核心服务使用 操作目的:对 单个Shard分片 执行副本集扩容,从3节点调整为4节点(新增11机房节点),为后续机房迁移做准备。 关键配置:副本集写入策略 w:...
背景 从来没部署过一个完整的前后端项目,这次刚好有一个小需求,涉及数据库、后端、中间件、前端这一整个常规链路。需求非常简单,使用的技术栈又很全,刚好可以用来练手一下全栈流程的搭建。 需求背景:我每个月都会将 memos 上的随笔整理为一篇公众号文章,之前都是手动一个一个从 memos 页面中粘贴过去、再手动调整格式。上周把 memos 的存储从 SQLite 改为 MySQL 后,就想着...
Go 文件的执行 1)run 和 build 的区别 go run 和 go build 是 Go 语言中两个不同的命令,主要区别如下: go run : 编译并立即执行:将源文件编译成临时可执行文件,然后立即运行 不生成持久文件:执行完成后,临时文件会被自动清理 适用场景:开发测试,快速验证代码逻辑 示例: go run main.go # 编译并...
前言 EOM 这套东西怎么能这么复杂,我实在想不明白为什么这么简单的一个需求,当初会搭建这么复杂的一套东西。甚至怀疑是前同事为了练手才搭建了一套这么复杂架构的系统。 EOM 目前:小题大做的架构设计、一堆无伤大雅的 bug、机器重启就会宕机需要手动维护。 但我又不想花时间写一套替代系统,投入产出比太低了。 所以这里整理出一篇比较系统的 EOM 维护手册,提供给研发和运维,方便后期维护...
前言 本文作为行为数据组所有 flask 相关接口的运维操作指南和记录。 api编写手册1 采用 flask 框架编写 API,配合 supervisor、gunicorn、nginx 进行部署。其中 gunicorn 用于做 WSGI HTTP 服务器,比直接使用 flask 稳定;supervisor 用户守护进程,用于管理应用的启动/关闭等;nginx 用于反代,统一管理路径相关...
一、架构及定义 1.1 前言 在一个数据服务的整体架构中,为了应对下游服务因为宕机、升级、切换等导致的短暂断开连接,需要设计对应的容灾机制来进行消息恢复,以保障消息能够抵达最终的数据层。 本文主要以 ESP 服务实际源码为参考,解析 TK 服务(行为数据组)中的消息恢复机制,并与主流容灾方案对比,分析优劣及未来演进方向。以便理解和掌握容灾设计的思路。 1.2 消息恢复架构 grap...
-1- 突然想到一件事:总用抽象词汇表达想法,会导致表达能力下降。 这必须要正视。 所谓的 抽象词汇,就是指那些缺乏统一界定、理解存在差异的词汇,比如 “素质”、“格局” 这类词,没有明确的标准来框定其内涵与外延。 这类词汇概念模糊,拥有极高的私人解释权,被大家 “灵活运用”,导致现在大众视野中有很多抽象词汇脱离了原本语义,仅仅成为抨击、泄愤、制造对立的工具。 以 “素质” 这个词...
-1- 现如今,AI 正在掀起一场革命。很多人可能不以为然,是因为当前正处在变革的初期,AI 的性能还在飞速提升、AI 的落地还在被全方位探索。 AI 在不久的将来会给我们带来方方面面的巨大影响,在我看来这将是一件典型的灰犀牛事件。 手里掌握资本(金钱、权利、技术、关系等)的人会作为先行军,在 AI 概念下向四面八方探索,然后,最先在某一方向站稳脚跟的人,将会收到巨额的回报。 普通人...