Netty系列学习系列二
接下来介绍Netty核心组件。
Reactor线程模型
线程模型的优劣直接决定了系统的吞吐量,可扩展性,安全性。
单线程模型
缺点:
- 一个线程支持处理的连接数有限,cpu很容易打满,性能方面有明显瓶颈。
- 当多个事件同时触发,只要有一个事件没有处理完,其他后面的事件就无法执行。
- 线程在处理I/O事件时,Select无法同时处理连接建立,事件分发等操作。
- 如果I/O线程一直处于满负荷状态,可能造成服务端节点不能用。
多线程模型
因为单线程模型有性能方面的瓶颈,多线程模型提供了解决方案。
Reactor多线程模型将业务逻辑
交给多个线程
进行处理。多线程模型其他的操作与单线程模型是类似的。
当客户端有数据发送到服务端时,Selector会监听到可读事件,数据读取完毕后提交到业务线程池中
并发处理。