SEDA概述
SEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stag,每个Stag使用不同数量的线程来处理,Stag间使用事件驱动的异步通信模式。
更进一步,在每个Stage中可以动态配置自己的线程数,在超载时降级运行(如输出纯文字页面)或拒绝服务。
SEDA模式的意义:
一来是让不同资源消耗的Stag使用不同的线程数量,达到资源的最优配置。
二来可以让不同的服务入口配置不同的资源,保证某些核心服务有足够的资源运行,非核心服务不会抢占完了所有资源,如果单纯由Tomcat来控制线程,就分不出这个轻重。
在每个Stage的通常有如下组件:
更进一步,在每个Stage中可以动态配置自己的线程数,在超载时降级运行(如输出纯文字页面)或拒绝服务。
SEDA模式的意义:
一来是让不同资源消耗的Stag使用不同的线程数量,达到资源的最优配置。
二来可以让不同的服务入口配置不同的资源,保证某些核心服务有足够的资源运行,非核心服务不会抢占完了所有资源,如果单纯由Tomcat来控制线程,就分不出这个轻重。
在每个Stage的通常有如下组件:
- Incoming Event Queue ,事件队列。
- Admission Controller 阀门,拒绝服务。
- Dynamically sized Thread Pool, 线程池。
- Event Handler ,实际处理业务的Compinent。
- Resource Controller ,控制Stage的参数。
评论
发表评论