Reator 模式 + Netty 线程模型 + 最佳实践建议

 

Reactor 模式

大部分网络框架的设计都基于 Reactor 模式。

这种模式基于事件驱动,特别适合处理大量的 IO 事件。

根据线程数量,我们可以将 Reactor 模式大致分为以下3种(以服务端实现为例):

单线程 Reactor

单个 Reactor 线程负责对TCP链路读写数据和编解码(包括执行业务逻辑)。

(很多人把该模式称为 “1 - 1”。其实这种称呼并不贴切。)

适用场景

适合 并发度低、请求处理快 的小应用。

 

缺陷

不适合 高并发、高负载的场景。因为:

  • 单线程处理大量并发链路时性能不高,也无法发挥多核计算机的优势。无法满足大量消息的编解码和读写需求。

  • 单线程负载过高后,处理速度变慢,可能导致大量客户端连接超时。超时会引起消息重发,线程负载更重。最终大量消息积压、超时,成为系统的性能瓶颈。

  • 单线程可靠性不足。单个线程意外终止或陷入死循环,会导致整个系统通信瘫痪,无法接受和处理外部请求。

 

 

多线程 Reactor

与单线程Reactor模式不同,此模式用一个 NIO线程池 代替原来的单个Reactor线程。

通常,Reactor 线程池中,每个线程可以同时处理 N条链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值