Reactor模型
Netty Reactor线程模型
单线程 Reactor
- acceptor 事件读取
- dispatch 事件分发
- read 读
- send 发送
以上操作这都都是在一个线程里完成,缺陷很明显。一次只能由一个事件进行,该事件未完成,后面的事件只能无法执行。
多线程 Reactor
该模型由单线程 Reactor 模型改进而来,每个连接对应一个线程。后续的处理流程于单线程模型一致。
主从 Reactor
- MainReactor 只负责连接事件监听,当 client 连接以后,将后续的处理交给 SubReactor 来完成。与 Nginx 中的 master 进程原理一致,接收请求后本身不处理请求交由对应的 worker 来处理。
做 Netty 开发时,选择的都是主从 Reactor 模型。