Reactor模式-高性能网络编程

目录

单线程Reactor

多线程Reactor


高性能web服务器Nginx,Redis,Netty都是基于Reactor模式的。

Reactor模式由Reactor线程、Handler处理器组成。类似于事件驱动模式。

  • Reactor线程:负责相应IO事件,并且分发到Handlers处理器。
  • Handles处理器:非阻塞的执行业务处理逻辑。

单线程Reactor

Reactor和Handlers处于一个线程中执行。

多线程Reactor

  1. 升级Handler。既要使用多线程,又要尽可能高效率,则可以使用线程池。
  2. 升级Reactor。可以考虑引入多个Selector(选择器),提升选择大量通道的能力。

总体来说,多线程Reactor模式大致如下:

  • 将负责数据传输的IOHandler处理器的执行放入独立的线程池中,这样,业务处理线程和负责新连接监听的反应器线程就能相互隔离,避免服务器的连接监听收到受阻。
  • 如果服务器为多核CPU,可以将反应器线程拆分成多个子反应器(SubReactor)线程;同时引入多个选择器,并且为每个SubReactor引入一个线程,一个线程负责一个选择器的事件轮询。这样充分利用了系统资源,大大提升了反应器管理大量连接或者监听大量传输通道的能力 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值