美文网首页
[SEDA]架构模型

[SEDA]架构模型

作者: 葡萄喃喃呓语 | 来源:发表于2017-09-27 09:55 被阅读160次

//
SEDA架构模型 - 简书
http://www.jianshu.com/p/e184fdc0ade4

//
一、传统并发模型的缺点
基于线程的并发


image.png

特点:每任务一线程直线式的编程使用资源昂高,context切换代价高,竞争锁昂贵太多线程可能导致吞吐量下降,响应时间暴涨。

//
基于事件的并发模型

image.png

特点:单线程处理事件每个并发流实现为一个有限状态机应用直接控制并发负载增加的时候,吞吐量饱和响应时间线性增长

//
二、SEDA架构

image.png

特点:
(1)服务通过queue分解成stage: 每个stage代表FSM的一个状态集合 Queue引入了控制边界
(2)使用线程池驱动stage的运行: 将事件处理同线程的创建和调度分离 Stage可以顺序或者并行执行 Stage可能在内部阻塞,给阻塞的stage分配较少的线程

//
三、小结
SEDA主要还是为了解决传统并发模型的缺点,通过将服务器的处理划分各个Stage,利用queue连接起来形成一个pipeline的处理链,并且在Stage中利用控制器进行资源的调控。资源的调度依据运行时的状态监视的数据来进行,从而形成一种反应控制的机制,而stage的划分也简化了编程,并且通过queue和每个stage的线程池来分担高并发请求并保持吞吐量和响应时间的平衡。简单来说,我看中的是服务器模型的清晰划分以及反应控制


//
基于SEDA模型的交易中间件服务器架构研究_百度学术
http://xueshu.baidu.com/s?wd=paperuri:(334b6c1fae6861e2113e1e70c6442314)&filter=sc_long_sign&sc_ks_para=q%3D%E5%9F%BA%E4%BA%8ESEDA%E6%A8%A1%E5%9E%8B%E7%9A%84%E4%BA%A4%E6%98%93%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9E%B6%E6%9E%84%E7%A0%94%E7%A9%B6&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=3847411028352465752
在大型分布式企业环境中,应用通常面对着异构的网络环境、不同的硬件平台以及相异的通讯协议。如果通过应用自身来解决服务器之间的通讯所带来的数据、协议转换问题,毫无疑问将严重影响应用开发的复杂程度和开发效率。而使用中间件(Middleware)可以轻松解决这些问题。针对民航业务实时并发请求多、业务功能复杂多变、数据量大、业务之间联系密切等业务特点设计了中间件服务器的软件架构。
本文分析当前流行的服务器并发模型的优缺点,选择了分阶段的事件驱动架构(Staged Event‐Driven Architecture,SEDA)作为服务器的架构基础,以SEDA分阶段思想对民航业务进行阶段划分,设计分布式环境下的中间件平台部署及运行结构,以两层SEDA共同完成对用户业务分阶段特性的支持。该架构使得应用开发人员无需关心异步调用细节,这大大降低了应用开发的复杂程度,提升了开发效率。
实验结果表明基于SEDA的服务器软件架构比基于线程池模型的服务器软件架构拥有更好的处理高并发服务请求的能力,能够使大规模民航旅客服务信息系统有效应对高并发高负载环境。同时本文分析了中间件平台的总体结构,根据其结构特点设计了负载均衡机制,提出了固定比例因子负载均衡算法并进行鲁棒性分析。为了提高中间件平台的鲁棒性和可靠性,根据其软硬件结构特点在固定比例因子负载均衡算法的基础上提出了动态负载均衡算法。同时设计了维护负载度量指标所需的数据结构以及在这种数据结构下维护该指标的方法,并进行了实验对比验证。实验结果表明负载均衡算法能使中间件平台的鲁棒性和可靠性得到提升。

相关文章

  • [SEDA]架构模型

    //SEDA架构模型 - 简书http://www.jianshu.com/p/e184fdc0ade4 //一、...

  • SEDA架构模型

    一、传统并发模型的缺点基于线程的并发 基于事件的并发模型 因在阅读的过程中感觉非常好,所以转载该文章,转自庄周蝶梦

  • Cassandra源码阅读(未完成)

    SEDA Cassandra 的操作使用的并发模型。SEDA将应用程序分解为由事件队列分隔的各个阶段,并引入动态资...

  • seda模型java实现

    本文为原创文章,转载请注明出处,谢谢你…… > 喜欢java并发编程的请加群:736156823 开始--> 直接...

  • Netty源代码解析一:EventLoop

    Netty是一个java的高性能同步/异步通讯框架,基于SEDA模型。最近因为要逐渐接触java项目,就看了下它的...

  • SEDA

    高并发 -多线程模型 -事件驱动模型 对请求采用事件(通常是IO事件)驱动方式处理, 其底层实现依赖于非阻塞IO和...

  • 常见文本分类模型

    1. Fasttext 1.1 模型架构 Fasttext模型架构和Word2vec的CBOW模型架构非常相似,下...

  • 浅析常用软件架构的三种架构模型

    常用的软件架构模型可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。 一.三种架构模型 1...

  • 阿里Java工程师理解的三种架构模型

    常用的软件架构模型可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。 一.三种架构模型 1...

  • 如何更好地成为一名架构师?

    架构结果管理 架构共赢模型

网友评论

      本文标题:[SEDA]架构模型

      本文链接:https://www.haomeiwen.com/subject/tavyextx.html