单 Reactor 单线程模式:
优点:
- 模型简单,没有多线程、进程通信、竞争的问题,全部都在一个线程中完成
缺点:(一个CPU工作,其他空闲、Handler处理业务耗时时,线程忙,其他事件无法处理、线程中断,系统崩)
- 性能问题,只有一个线程,无法完全发挥多核 CPU 的性能
- Handler 在处理某个连接上的业务时,整个进程无法处理其他连接事件,很容易导致性能瓶颈
- 可靠性问题,线程意外终止,或者进入死循环,会导致整个系统通信模块不可用,不能接收和处理外部消息,造成节点故障
使用场景:
客户端的数量有限,业务处理非常快速,比如 Redis在业务处理的时间复杂度 O(1) 的情况