一、传统并发模型的缺点
基于线程的并发
特点:每任务一线程直线式的编程使用资源昂高,context切换代价高,竞争锁昂贵太多线程可能导致吞吐量下降,响应时间暴涨。
基于事件的并发模型
特点:单线程处理事件每个并发流实现为一个有限状态机应用直接控制并发负载增加的时候,吞吐量饱和响应时间线性增长
二、SEDA架构
特点:(1)服务通过queue分解成stage: 每个stage代表FSM的一个状态集合 Queue引入了控制边界(2)使用线程池驱动stage的运行: 将事件处理同线程的创建和调度分离 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合理的并发程度操作:观察queue长度,如果超过阀值就添加线程移除空闲线程
(2)、批量管理器目的:低响应时间和高吞吐量的调度操作:Batching因子:Stage一次处理的消息数量小的batching因子:低响应时间大的batching因子:高吞吐量尝试找到具有稳定吞吐量的最小的batching因子观察stage的事件流出率当吞吐量高的时候降低batching因子,低的时候增加
三、小结 SEDA主要还是为了解决传统并发模型的缺点,通过将服务器的处理划分各个Stage,利用queue连接起来形成一个pipeline的处理链,并且在Stage中利用控制器进行资源的调控。资源的调度依据运行时的状态监视的数据来进行,从而形成一种反应控制的机制,而stage的划分也简化了编程,并且通过queue和每个stage的线程池来分担高并发请求并保持吞吐量和响应时间的平衡。简单来说,我看中的是服务器模型的清晰划分以及反应控制。
因在阅读的过程中感觉非常好,所以转载该文章,转自庄周蝶梦
相关推荐
NULL 博文链接:https://xylong.iteye.com/blog/1441956
基于SEDA架构的网格服务容器设计与实现.pdf
采用分级事件驱动架构SEDA(Staged Event Driven Architecture),通过划分阶段Stage的方式解除耦合,在阶段之间采用事件进行异步消息通信,结合非阻塞的I/O机制设计实现了一个事件驱动的网格服务容器,并从吞吐量、...
【大纲】 服务端软件=排队服务 回顾常见的并发模型 介绍SEDA 分享我们的经验
Staged Event Driven Architecture (SEDA) 是加州大学伯克利分校研究的一套优秀的高性能互联网服务器架构模型
we call the staged event-driven architecture (SEDA). SEDA is intended to support massive concurrency demands and simplify the construc- tion of well-conditioned services. In SEDA, applications consist...
Staged Event Driven Architecture (SEDA) 是加州大学伯克利分校研究的一套优秀的高性能互联网服务器架构模型
基于SEDA的企业服务总线的设计与设计,清晰地讲解了SEDA的结构与设计原理,为高并发网络响应提供了一种实现思路
阶段事件驱动架构设计论文,详细介绍了seda的架构体系。
NULL 博文链接:https://ailikes.iteye.com/blog/2233024
seda过载保护
基于SEDA的企业服务总线的设计与实现,基于SEDA的企业服务总线的设计与实现
有关 ehensin-seda 的最新信息,请访问我们的网站:
1、安装环境 2、安装依赖软件 3、安装配置Seda 4、测试seda能否正常工作
mule & seda 学习二.docx
SEDA(StagedEvent-DrivenArchitectrue)--兼谈服务器体系结构设计一.引言
Aggregate Framework概述 Aggregate Framework是基于DDD和CQRS思想而开发的一个领域驱动框架。其主要目标是方便开发人员运用DDD和CQRS思想来构建复杂的、可扩展的应用系统。该框架提供了最核心的构建块的实现,比如...
SEDA: An Architecture for Scalable,Well-Conditioned Internet ServicesMatt Welsh, David Culler, and Eric BrewerUC Berkeley Computer Science Division mdw@cs.berkeley.eduhttp://www.cs.berkeley.edu/~mdw/...
MULE IN ACTION Mule是一个企业服务总线(ESB)消息框架.它的主要特性包括: 1.基于J2EE1.4的企业消息总线(ESB)和消息代理...7.使用基于SEDA处理模型的高度可伸缩的企业服务器. 8.强大的基于EIP模式的事件路由机制等.
针对Web服务集成过程中分阶段事件驱动架构(SEDA)仅考虑服务集成架构的资源消耗,而对被集成的服务及由其构成的任务资源耗费考虑不足的问题,提出了分阶段优先级事件驱动架构(SPEDA).选取评价指标,通过熵权法对事件...