单Reactor单线程
2021-06-26 22:49:07 0 举报
单Reactor单线程
作者其他创作
大纲/内容
请求
send
read
Reactor单线程
处理请求
Client
建立连接
应用程序
accept
dispatch
1. 优点:模型简单,没有多线程,进程通信,竞争问题,全部都在一起2. 缺点: 性能问题,只有一个线程,无法完全发挥CPU性能,Handler在处理某个连接业务时,整个进程无法处理其他连接事件,很容易导致性能上的瓶颈3. 缺点:可靠性问题,线程意外终止,或者进入死循环,会导致整个系统通信模块不可用,不能接收和处理外部消息,造成节点故障4. 使用场景:客户端的数量有限,业务处理非常快速,比如redis在业务处理的时间复杂度o(1)的情况5. 所以服务器端用一个线程通过多路复用搞定所有IO操作:(包括从连接,建立请求,到handler处理一次性全部包括读写等等,但是如果客户端数量过多的话会造成瓶颈)举个例子:一个酒店,有一个前台(Reacotr),这时候有个顾客进来后,前台进行接待(accept),接待完成后,需要待顾客办理业务,比如入住,带领顾客做一些其他的业务(Handler)等等,这就是前台从接待到业务处理全部一个人都做了,假如说有一天一次性来了好多人,那么前台就会出现忙不过来,其他顾客都在等待的情况,这里就是阻塞,出现连接上的瓶颈
业务处理
Handler
Reactor
select
Acceptor
0 条评论
回复 删除
下一页