主从多Reator线程模型
- Netty 的线程模型基于主从多Reactor模型。通常由一个线程负责处理OP_ACCEPT 事件,拥有 CPU 核数的两倍的IO线程处理读写事件。
- 一个通道的IO操作会绑定在一个IO线程中,而一个IO线程可以注册多个通道。
- 在一个网络通信中通常会包含网络数据读写,编码、解码、业务处理。默认情况下编码、 解码等操作会在IO线程中运行,但也可以指定其他线程池。
- 通常业务处理会单独开启业务线程池,但也可以进一步细化,例如心跳包可以直接在IO 线程中处理,而需要再转发给业务线程池,避免线程切换。
- 在一个IO线程中所有通道的事件是串行处理的。