Netty之主从Reactor多线程模型

Reactor模式用于解决高性能IO问题,特别适合处理海量的I/O事件,它是当前大多数IO组件所采用的IO模式。Netty网络框架就是基于Reactor模式进行设计和开发的,当请求抵达后,服务处理程序使用多路分配策略,同步地派发这些请求至相关的请求处理程序。

Netty可以通过配置不同参数实现不同Reactor线程模型,在Netty的官方demo中,推荐使用主从Reactor多线程模型,所以这里主要讲解常用的主从Reactor多线程模型。

主从Reactor线程模型的特点,服务端用于接收客户端连接的不再是个1个单独的NIO线程,而是一个独立的NIO线程池bossGroup。Acceptor接收到客户端TCP连接请求并处理完成后,将新创建的SocketChannel注册到workGroup线程池的某个IO线程上,由它负责SocketChannel的读写和编解码工作。

(1)bossGroup:监听ServerSocketChannel,接收到客户端连接请求后交由Acceptor处理,成功建立连接后将SocketChannel派发给workGroup。

(2)Acceptor:联想Socket编程大概也能猜到这是处理客户端请求链接的,Acceptor仅仅完成登录、握手和安全认证等操作,一旦链路建立成功,就将SocketChannel注册到后端workGroup线程池的IO线程上,由IO线程负责后续的IO操作。

(3)workGroup:监听SocketChannel的IO事件,完成编码、解码以及相应业务处理。

下面给出一个主从Reactor多线程模式的使用实例:

public class Server {
	public static void main(String[] args) throws
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值