
在《socket与IO高性能》提到了Reactor模式,并把Reactor模式的种类写出来。
但对于Reactor本身的定义没有阐述清楚
Reactor模式是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式。 当请求抵达后,服务处理程序使用解多路分配策略,然后同步地派发这些请求到相关的请求处理程序
对于Reactor模式来说,每当有一个 Event 输入到 Server 端时,Service Handler 会将其转发(dispatch)相对应的 Handler 进行处理。
Reactor 模型中定义的三种角色:
Reactor:派发器,负责监听和分配事件,并将事件分派给对应的 Handler。新的事件包含连接建立就绪、读就绪、写就绪等。
Acceptor:请求连接器,处理客户端新连接。Reactor 接收到 client 端的连接事件后,会将其转发给 Acceptor,由 Acceptor 接收 Client 的连接,创建对应的 Handler,并向 Reactor 注册此 Handler。
Handler:请求处理器,负责事件的处理,将自身与事件绑定,执行非阻塞读/写任务,完成 channel 的读入,完成处理业务逻辑后,负责将结果写出 channel。可用资源池来管理。