Netty网络高性能核心原理

Reference:https://time.geekbang.org/column/article/338320

 

为什么Netty网络处理性能高?

因为Netty采用了Reactor模式。

 

为什么用了Reactor模式性能就高?

因为Reactor模式是基于IO多路复用的事件驱动模式。

 

为什么IO多路复用性能高?

因为IO多路复用既不会像阻塞IO那样没有数据的时候挂起工作线程,也不需要像非阻塞IO那样轮询判断是否有数据。

 

为什么IO多路复用既不需要挂起工作线程,也不需要轮询?

因为IO多路复用可以在一个监控线程里面监控很多的连接,没有IO操作的时候只要挂起监控线程;只要其中有连接可以进行IO操作的时候,操作系统就会唤起监控线程进行处理。

 

为什么挂起监控线程,这样做性能就高?

1. 如果采用阻塞工作线程的方式,对于Web这样的系统,并发的连接可能几万十几万,如果每个连接开一个线程的话,系统性能支撑不了;而如果用线程池的话,因为线程被阻塞的时候是不能用来处理其他连接,会出现等待线程的问题。

2. 线上单个系统的工作线程数配置可以达到几百上千,这样数量的线程频繁切换有性能问题,而单个监控线程切换的性能影响可以忽略不计。

3. 工作线程没有IO操作的时候可以做其他事情,能够大大提升系统的整体性能。

 

posted @ 2021-01-31 20:52  李白与酒  阅读(120)  评论(0编辑  收藏  举报