Reactor 模式

2021-09-13  本文已影响0人  wayyyy

Reactor 模型就是网络服务器端用来处理高并发网络 IO 请求的一种编程模型,总结起来:

事件类型与角色

Reactor 模型处理的是客户端和服务器端的交互过程,而这三类事件正好对应了客户端和服务器端交互过程中,不同类请求在服务器端引发的待处理事件:

这三类事件是由谁来处理的呢?那就是对应三个角色了:

7304940-3d3bb7900292b66b.png
事件驱动框架

事件驱动框架,就是在实现 Reactor 模型时,需要实现的代码整体控制逻辑。简单来说,事件驱动框架包括了两部分:一是事件初始化;二是事件捕获、分发和处理主循环。

事件初始化是在服务器程序启动时就执行的,它的作用主要是创建需要监听的事件类型,以及该类事件对应的 handler。而一旦服务器完成初始化后,事件初始化也就相应完成了,服务器程序就需要进入到事件捕获、分发和处理的主循环中。

7304940-df0cf0ead00658d2.png
Redis 对 Reactor 模型的实现

github 有人将redis中的网络模块代码移植出来,参见:https://github.com/aisk/libae

Redis 为了实现事件驱动框架,同样的定义了:
事件的数据结构
框架主循环函数
事件捕获分发函数
事件注册函数
事件对应的handler 函数


参考资料

1、《高性能Linux服务器编程》
2、https://github.com/aisk/libae

上一篇下一篇

猜你喜欢

热点阅读