【Netty系列】Reactor 模式 2
目录
流程图说明
关键流程
以下是 Reactor 模式流程图,结合 Netty 的主从多线程模型,帮助你直观理解事件驱动和线程分工:
流程图说明
- Clients(客户端)
-
- 多个客户端(Client 1~N)向服务端发起连接请求。
- Main Reactor(主 Reactor)
-
bossGroup
中的单个EventLoop
线程负责监听端口(如 8080)。Acceptor
接受新连接,并将新连接的Channel
分配给workerGroup
中的某个子 Reactor(如轮询分配)。
- Sub Reactors(子 Reactor)
-
workerGroup
包含多个EventLoop
线程(如 EventLoop 1~N),每个线程处理多个Channel
的 I/O 事件。- 例如:EventLoop 1 处理 Channel 1 的读写,EventLoop 2 处理 Channel 2 的读写。
- ChannelPipeline(责任链)
-
- 每个
Channel
对应一个 Pipeline,数据按顺序经过解码器、业务逻辑、编码器等处理步骤。
- 每个
关键流程
- 连接建立
-
- 客户端发起 TCP 连接 → Main Reactor 的
Acceptor
接受连接 → 分配 Channel 给 Sub Reactor。
- 客户端发起 TCP 连接 → Main Reactor 的
- I/O 事件处理
-
- Sub Reactor 的
EventLoop
监听 Channel 的读写事件 → 触发channelRead
→ 数据通过 Pipeline 处理。
- Sub Reactor 的
- 非阻塞机制
-
- 每个
EventLoop
使用Selector
监听多个 Channel,实现单线程处理多连接的 I/O 事件。
- 每个