Reactor模型简介
Reactor模型是服务器端用于处理高并发网络IO请求的编程模型,与传统的一请求一线程的同步式编程模型不同的是,Reactor模型是基于事件驱动的响应式编程模型,可以一个线程处理多个请求,并且是异步处理,在高并发场景下,性能大大的提升。
传统的同步式编程模型如下:

服务端接收到请求后,从线程池中拿出一个线程(比如Tomcat里的线程池),经过Controller、Service、Dao的一顿处理,最后返回响应结果给客户端。这种同步处理请求的方式效率并不高,可以应对一些并发量不高的场景。
基于事件驱动的响应式编程模型如下:

- 服务端启动时,会创建Reactor反应器,然后会向Reactor注册基本的事件类型与对应的Handler(比如网络编程时的连接就绪事件与Acceptor)
- 当服务端接收到客户端的请求时,服务端的Reactor就有事件就绪,Reactor会获取到就绪的事件,在高并发场景下,Reactor有可能获取到一批就绪的事件
- Reactor进事件分发,把事件分派给与之绑定的Handler中,Handler对事件的处理可以在当前线程中也可以在线程池中,当然在线程池中处理性能会更高
- Handler处理完毕后,如果后续还有其他处理步骤,则可以继续注册新的事件与对应的Handler到Reactor中;如果没有后续,则可以返回响应结果给客户端,返回响应结果这个动作可作为单独的一个事件,由对应的Handler进行处理,那么也可以继续注册到Reactor中。
Rea

最低0.47元/天 解锁文章
1082

被折叠的 条评论
为什么被折叠?



