多路复用
2020-05-28 本文已影响0人
gstsyyb
背景:
1、少量线程处理大量客户端连接,如何实现????
线程资源是有限的,不能无限增加。
2、reactor 如果负载过高,单线程可能挂掉,如何解决?????
主从 reactor 来实现
原理图:
nio:同步非阻塞,阻塞在 Select 上(多路复用),适合大量连接,连接时间较短
image.pngReactor 模型(1个 reactor与多个 reactor)
问题:reactor 线程不能存在单点,一旦出现 reactor 异常,将无法读写
NIO 模型:
image.png
AIO 模型:
image.png