高并发服务器架构--SEDA架构分析( 三 )


将事件处理同线程的创建和调度分离
Stage可以顺序或者并行执行
Stage可能在内部阻塞 , 给阻塞的stage分配较少的线程

1、Stage-可靠构建的基础


(1)应用逻辑封装到Event Handler
接收到许多事件 , 处理这些事件 , 然后派发事件加入其他Stage的queue
对queue和threads没有直接控制
Event queue吸纳过量的负载 , 有限的线程池维持并发
(2)Stage控制器
负责资源的分配和调度
控制派发给Event Handler的事件的数量和顺序
Event Handler可能在内部丢弃、过滤、重排序事件 。
2、应用=Stage网络
(1)有限队列
入队可能失败 , 如果队列拒绝新项的话
阻塞在满溢的队列上来实现吸纳压力
通过丢弃事件来降低负载
(2) 队列将Stage的执行分解
引入了显式的控制边界
提供了隔离、模块化、独立的负载管理
(3)方便调试和profile
事件的投递可显
时间流可跟踪
通过监测queue的长度发现系统瓶颈
3、动态资源控制器
(1)、线程池管理器
目标: 决定Stage合理的并发程度
操作:

推荐阅读