Java Netty Reactor的NIO线程模型有哪些基本类型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1804个文字,预计阅读时间需要8分钟。
1. Reactor三种线程模型
1.1 单线程模型
Reactor单线程模型,即所有的IO操作都在一个NIO线程上完成。NIO线程负责:1) 作为NIO服务端,接收客户端的TCP连接;
2) 作为NIO客户端,发起TCP连接。
1. Reactor三种线程模型
1.1. 单线程模型
Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下:
1)作为NIO服务端,接收客户端的TCP连接;
2)作为NIO客户端,向服务端发起TCP连接;
3)读取通信对端的请求或者应答消息;
4)向通信对端发送消息请求或者应答消息。
Reactor单线程模型示意图如下所示:
Reactor单线程模型
由于Reactor模式使用的是异步非阻塞IO,所有的IO操作都不会导致阻塞,理论上一个线程可以独立处理所有IO相关的操作。从架构层面看,一个NIO线程确实可以完成其承担的职责。例如,通过Acceptor类接收客户端的TCP连接请求消息,链路建立成功之后,通过Dispatch将对应的ByteBuffer派发到指定的Handler上进行消息解码。用户线程可以通过消息编码通过NIO线程将消息发送给客户端。
对于一些小容量应用场景,可以使用单线程模型。
本文共计1804个文字,预计阅读时间需要8分钟。
1. Reactor三种线程模型
1.1 单线程模型
Reactor单线程模型,即所有的IO操作都在一个NIO线程上完成。NIO线程负责:1) 作为NIO服务端,接收客户端的TCP连接;
2) 作为NIO客户端,发起TCP连接。
1. Reactor三种线程模型
1.1. 单线程模型
Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下:
1)作为NIO服务端,接收客户端的TCP连接;
2)作为NIO客户端,向服务端发起TCP连接;
3)读取通信对端的请求或者应答消息;
4)向通信对端发送消息请求或者应答消息。
Reactor单线程模型示意图如下所示:
Reactor单线程模型
由于Reactor模式使用的是异步非阻塞IO,所有的IO操作都不会导致阻塞,理论上一个线程可以独立处理所有IO相关的操作。从架构层面看,一个NIO线程确实可以完成其承担的职责。例如,通过Acceptor类接收客户端的TCP连接请求消息,链路建立成功之后,通过Dispatch将对应的ByteBuffer派发到指定的Handler上进行消息解码。用户线程可以通过消息编码通过NIO线程将消息发送给客户端。
对于一些小容量应用场景,可以使用单线程模型。

