服务器设计之SEDA架构

seda架构 NULL 博文链接:https://xylong.iteye.com/blog/1441956 立即下载

SEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stag,不同资源消耗的Stag使用不同数量的线程来处理,Stag间使用事件驱动的异步通信模式。

     更进一步,在每个Stage中可以动态配置自己的线程数,在超载时降级运行(如输出纯文字页面)或拒绝服务。

     在每个Stage的通常有如下组件:

Incoming Event Queue ,事件队列。 Admission Controller  阀门,拒绝服务。 Dynamically sized Thread Pool, 线程池。 Event Handler ,实际处理业务的Compinent。 Resource Controller ,控制Stage的参数。 2.Web2.0+SOA环境下的SEDA应用     Web2.0对架构师提出了新的挑战 ,  JavaEE 的同步调用机制(除JMS),有限的线程池与连接池(超出范围性能会下降),固定的定义在JNDI的资源对Web2.0/SOA的需求并不吻合。对BEEP,SCTP这些协议,必须依靠JCA另行编写模块来实现长连接模型。

    Java EE 迎合 Web 2.0(IBM DW) 提出,从统计学上看在系统总线程数固定的情况下,使用SEDA能获得较高的Throughput,阶段间的资源差异越大就越明显。     比如处理一个Web 2.0常用Mashup请求,有如下几步:

接收用户请求(1单位时间) 数据库查询(4单位时间) 根据数据库查询结果,准备Web Service调用参数(1单位时间) 发起Web Service调用((16单位时间)) 将结果渲染返回给用户(2单位时间)          那么SEDA会使用一条线程处理1.接收用户请求、3.准备WebService、5.返回结果,两条线程处理2.数据库查询, 而5条线程处理耗时最多的4.WebService请求。      结果表明,当远程调用所花时间不变,而本地操作得到优化时,系统通量也能获得明显提高。

3. Mule 中的SEDA 实例 Using SEDA to Ensure Service Availability(InfoQ)        Mule是SEDA架构的遵循者。每个Component间,用inbound->outBound的Queue异步相连,每个Component可以设置自己的线程池大小,队列长度。

      因此SEDA中的Stag间事件驱动异步链接,Stag内Incoming Event Queue,Thread Pool,Event Handler都有了。

<mule-descriptor name="RadioCarUMO" implementation="radioCar">    <threading-profile maxThreadsActive="5" maxThreadsIdle="10" poolExhaustedAction="WAIT" threadWaitTimeout="-1" id="component" doThreading="true"/>    <queue-profile maxOutstandingMessages="6"/>    <inbound-router>        <endpoint address="RadioCarsQueue"/>        <router className="org.mulefair.routing.BennyTheGatekeeper"/>    </inbound-router>    <outbound-router>        <router className="org.mule.routing.outbound.OutboundPassThroughRouter">             <endpoint address="FairAreaQueue"/>        </router>    </outbound-router></mule-descriptor>  

   而例子中的InboundRouter BennyTheGatekeeper,则实现了administration controller的角色,本来poolExhaustedAction="WAIT",而administration controller可以通过计数器,直接refuse需求,将请求转发到alarm queue。

   整个Stag中唯一缺失是动态改变资源参数的Resource Controller,threadpool也不是Dynamically sized Thread Pool,但这似乎不重要了。

    再一次觉得Mule充当Service Container比ESB时还要称职。

Eplan P8 API二次开发--插入符号(Symbol)功能(Function)并定义属性 1、目的 使用Eplan API在页中自动插入某个符号并按约定规则自动设置好属性 2. 步骤 一、基础信息 比如要在Eplan中自动插入一个电机的符号并定制属性,我们先要确定要插入的符号名,可以在Eplan中获取如下符号(Symbol)信息 可以知道我们待插入的符号名称为M3_1, 接下来,使用Visual Studio建立类库项目,并引用Eplan Api库 二、获取符号变量(SymbolVariant) 在Eplan中,当一个符号(Symbol)被插入到页中,这个符号的引用即变为一个(Function 阅读详情

相关推荐

Aras Innovator系统配置-01对象类(一)

对象类配置-对象类属性说明

企业信息化(PLM,ERP.MES) 2032

SEDA

SEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stag,不同资源消耗的Stag使用不同数量的线程来处理,Stag间使用事件驱动的异步通信模式。   更进一步,在每个Stage中可以动态配置自己的线程数,在超载时降级运行(如输出纯文字页面)或拒绝服务。   在每个Stage的通常有如下组件:   Incoming

arkblue的专栏 815

实战教程:用DETR+超分辨率搞定红外小目标检测(附完整代码)

本文提供了一套完整的红外小目标检测实战方案,通过融合EDSR超分辨率技术与改进型DETR深度学习算法,有效解决了红外图像中小目标检测的难题。文章详细介绍了从环境搭建、数据预处理、模型定制(如引入EMA注意力与S2特征层)到训练调优的全流程,并附有完整代码,旨在帮助开发者将前沿算法高效落地于安防、自动驾驶等实际场景。

weixin_29057163的博客 531

Staged Event-Driven Architecture

SEDA的是上演事件驱动架构的缩写,一个复杂的,事件驱动的应用程序分解成一组队列连接的阶段 。 这种设计避免了与基于线程的并发模型相关的开销,并分离事件和应用程序逻辑线程调度。 通过执行每个事件队列入场控制,服务以及空调加载,防止资源被过度,当需求超过服务能力。 SEDA的采用动态控制,自动调节运行参数(如每个阶段的调度参数),以及管理负载,例如执行自适应负载脱落。 分解成一阶段的服务,也使复杂...

weixin_33725270的博客 294

【Bluetooth蓝牙开发】十一、一文秒懂 | 超详细的Bluez交叉编译

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 3976

NeRF-Pytorch(训练自己的数据集过程全记录+环境配置+COLMAP+问题解决)

写于2025/1/26,在用NeRF训练自己的数据集过程中该踩的坑都踩过了,发现网上并没有详细完整写这些问题解决过程的帖子,遂自己进行一个全记录和复盘。 整篇文章包括:NeRF训练环境配置;COLMAP三维重建过程(直接给出代码,规避一些bug);在训练时候出现的问题。 本篇文章仅针对llff格式数据集。

m0_62577716的博客 1774

SEDA,一个不错的技术。

最近在看MULE的时候,发现了一个不错的技术--SEDA,不过现在我还不知道如何能独立出来应用到我的系统中呢。下面转载一篇文章,给大家看看。http://larryzhu.bokee.com/6779982.htmlStaged Event Driven Architecture (SEDA) 介绍关键词: SEDA    Staged    Event    Driven    Ar

jeff技术博客 3760

windows中通过docker部署LocateAnything-3B模型

windows中通过docker部署LocateAnything-3B模型

yilvyangguang520的博客 485

【服务器】SEDA

SEDA: An Architecture for Well-Conditioned, Scalable Internet Services Abstract ​ Staged Event-Driven Architecture(SEDA)是一种新的高并发Internet服务设计,旨在支持大量并发需求,并简化条件良好的服务的构造。在SEDA中,应用程序由显式队列连接的事件驱动阶段(event-driven stage)网络组成。 ​ SEDA利用一组动态资源控制器(dynamic resource co

Undefined ZONE 785

AMBA-CHI协议详解(二)

读事务,写事务,原子事务,Stash事务,Dataless事务,DVM事务,Retry事务。

Crazzy_M的博客 6652

网络分析工具Wireshark系列专栏:01-专栏导读

随着人工智能技术的普及,越来越多的博主开始利用AI进行内容创作,导致优快云等平台上充斥着大量低质量的洗稿文章,严重影响了技术软文的质量和可信度。为了应对这一现象,提升技术内容的质量,瑞哥决定推出系列技术专栏,为大家带来系统、深入且高质量的技术学习资源。这些专栏将帮助读者从入门到精通,特别适合习惯通过文档学习的技术爱好者。作为首个专栏,我们将聚焦于Wireshark——一款广受欢迎的网络协议分析工具。根据优快云后台的反馈,许多读者表示Wireshark是他们欠缺的一项技能。因此,本专栏将通过精心设计的课程

网络技术联盟站 359

SEDA介绍与分析

<br />SEDA(Staged Event-Driven Architecture)并不是很新的技术,但它总会在我阅读的资料里出现些许影子,所以就拿出一些时间看了一下与它相关的论文资料。SEDA的目标很 远大,它要构建支持大并发的互联网系统,并克服多线程及事件驱动的服务器端模型的缺点。但SEDA来源于学术界,并且这个东西还是有些复杂了,所以至今工 业级的应用不是很多。它的官网是http://www.eecs.harvard.edu/~mdw/proj/seda/ ,上面的一些论文还是很不错的,

我的JAVA快乐生活 4193

量化 insider 爆料! 散户打板必亏?(打板必看!量化资金如何“隔日砸盘”收割散户)

量化开发 insider 爆料💥 散户追的涨停板📉,可能是机构故意做的陷阱!本文从技术视角拆解“涨停陷阱”,帮你看清市场真实逻辑🧠。

XiaoqiangClub的博客 450

设计美好的服务器(6)--SEDA架构笔记

1.Overview SEDA  Adaptive Overload Control for Busy Internet Servers  An Architecture for Highly Concurrent,Well-Conditioned Internet Services       SEDA(Staged Event-Driven Arc

花钱的年华 7160

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

适于互联网的SEDA高并发架构

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33890499的博客 133

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

基于SEDA的异步框架设计与实现

基于SEDA的异步框架设计与实现 三、异步框架技术选型        在这次实现的SEDA异步框架中,采用的基础架构原型如下:         采用了spring+quartz+fastjson+rabbitmq来实现。和传统SEDA架构区别比较大的地方在于:         1、采用分布式mq(使用了rabbitmq)而不是blockingqueue。如此

IT小智博客 3008

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SEDA简介与源码解读(一)

简介: -------------------------------------------------------------------------------------------------------------------------------------------------------------------- /* *分割线内...

weixin_34266504的博客 189
上一篇: Apache Mina 2.0.x 入门 (1)
下一篇: FREEBSD6.3 安装 TOMCAT6.0.14
dankes
博客等级 码龄22年 41粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值