Netty 线程模型与Reactor 模式
前言 Netty 的线程模型是基于NIO的Selector 构建的,使用了异步驱动的Reactor 模式来构建的线程模型,可以很好的支持成百上千的 SocketChannel 连接。由于 READ/WRITE 都是非阻塞的,可以充分提升I/O线程的运行效率 ,避免了IO阻塞导致线程挂起, 同时可以让一个线程支持对多个客户端的连接SocketChannel的 READ/WRITE 操作, 从根本上解决了传统阻塞IO的一线程处理一连接的弊端。 高效率的Reactor模式 Reactor 模式 是一种为处理服务请求并发,提交到一个或者多个服务处理程序的事件设计模式。当请求抵达后,服务处理程序使用解多路分配策略,然后同步地派发这些请求至相关的请求处理程序 (来自维基百科: https://zh.wikipedia.org/wiki/反应器模式 ) 常见的reactor模式有以下三种 单线程reactor 多线程reactor 主从reactor 1、单线程reactor ractor 单线程模式是指所有的I/O操作都在一个NIO线程完成,该线程的职责: 1.作为NIO服务端,接收客户端TCP连接 2.作为NIO客户端,向客户端发送TCP连接 3.READ/WRITE 客户端的请求 不过单线程的reactor 模式无法发挥多核的优势,因此对于高并发量的系统仍然存在瓶颈,主要原因如下: 1