- 1
- 2
- 3
- 4
- 5
用时间轮管理libevent的心跳超时.docx
资料介绍
用时间轮管理 libevent 的心跳超时
万级连接的超时难题
当服务器需要管理上万甚至十万个连接时,每个连接都有自己的心跳超时。如果每个连接都单独调用 event_add 注册一个定时器,会带来几个问题。
一是时间复杂度高,海量定时器的添加、删除、触发是 O(log N)。二是内存开销大,每个连接都要独立的定时器结构和回调上下文。三是锁竞争频繁,多线程下操作海量定时器容易冲突。
对万级连接的心跳超时管理,需要更高效的方案——时间轮。
时间轮的核心思想
时间轮用固定大小的环形数组代替海量的独立定时器。
环形数组的每个槽位存放一批连接,槽位代表一个时间段。用一个全局的、周期性的定时器驱动时间轮 tick,每次 tick 处理一个槽位,批量检查超时。
这样,添加、删除连接的时间复杂度降为 O(1),超时扫描也是批量进行。相比每个连接一个定时器的 O(log N),性能和内存都有巨大优势。
时间轮的数据结构
时间轮的数据结构,核心是一个环形数组和一个全局定时器。
环形数组:每个槽位存放一个连接链表。连接根据其超时时间,放到对应的槽位。
全局定时器:每隔 tick 时间触发一次,驱动时间轮前进一个槽位。整个时间轮只需要这一个定时器,而不是每个连接一个。
连接上下文里,记录了所在槽位索引,以及链表指针,方便在槽位间移动。
连接的操作
时间轮对连接的操作,都设计成 O(1)。
添加连接:计算超时对应的槽位,把连接加入该槽位的链表尾部。
更新连接:连接活跃(收到心跳)时,从原槽位移除,重新加入新的超时槽位。
移除连接:连接关闭时,从槽位链表移除。
部分文件列表
| 文件名 | 大小 |
| 用时间轮管理libevent的心跳超时.docx | 38K |
最新上传
-
江岚 打赏20.00元 12小时前
-
江岚 打赏50.00元 12小时前
-
江岚 打赏20.00元 12小时前
-
江岚 打赏10.00元 12小时前
-
21ic小能手 打赏10.00元 2天前
-
21ic小能手 打赏8.00元 2天前
-
21ic小能手 打赏8.00元 2天前
-
21ic小能手 打赏5.00元 2天前
-
21ic小能手 打赏3.00元 2天前
-
tangyu1 打赏1.00元 3天前
-
jjjjkkkkk 打赏1.00元 3天前
-
emlimei 打赏1.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前
资料:低频功率放大器的设计.
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:51单片机数字频率计
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
13573902396 打赏1.00元 3天前
-
21下载积分 打赏310.00元 3天前
用户:江岚
-
21下载积分 打赏310.00元 3天前
用户:潇潇江南
-
21下载积分 打赏60.00元 3天前
用户:他山之石可攻玉
-
21下载积分 打赏310.00元 3天前
用户:小猫做电路
-
21下载积分 打赏210.00元 3天前
用户:zhengdai
-
21下载积分 打赏210.00元 3天前
用户:w993263495
-
21下载积分 打赏10.00元 3天前
用户:烟雨
-
21下载积分 打赏60.00元 3天前
用户:gsy幸运
-
21下载积分 打赏70.00元 3天前
用户:铁蛋锅
-
21下载积分 打赏65.00元 3天前
用户:xzxbybd
-
21下载积分 打赏60.00元 3天前
用户:jh0355
-
21下载积分 打赏60.00元 3天前
用户:w178191520
-
21下载积分 打赏20.00元 3天前
用户:jh03551
-
21下载积分 打赏20.00元 3天前
用户:sun2152
-
21下载积分 打赏20.00元 3天前
用户:kk1957135547
-
21下载积分 打赏25.00元 3天前
用户:w1966891335
-
21下载积分 打赏20.00元 3天前
用户:xuzhen1
热门下载
- 从双脉冲到动态RDS(on):GaN器件动态参数测试全解析
- c2762669 变容二极管_1SV305(TPH3,F)_规格书
- 一颗便宜可靠的3D磁场传感器MMC5603NJ 手册
- STM32F407ZGT6的示波器 信号发生器 数字万用表集成装置设计
- 2024电赛元件仪器清单
- GJB 152A-1997 军用设备和分系统电磁发射和敏感度测量
- modbus_tcp 源码 可直接移植使用
- 泰和安TX3016C TX3006C TX3008C火灾报警控制器安装使用说明书 V1.3
- 专业级文件压缩与解压工具 ZArchiver_Pro_1.0.10_101035_9e6036
- 5W和15W无线充资料




全部评论(0)