高并发服务器架构–SEDA架构分析

高并发服务器架构–SEDA架构分析一 传统并发模型的缺点基于线程的并发特点 每任务一线程直线式的编程使用资源昂高 context 切换代价高 竞争锁昂贵太多线程可能导致吞吐量下降 响应时间暴涨

大家好,欢迎来到IT知识分享网。

一、传统并发模型的缺点

基于线程的并发

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

基于事件的并发模型

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

二、SEDA架构

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

1、Stage-可靠构建的基础

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


(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长度,如果超过阀值就添加线程
移除空闲线程




















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

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


三、小结


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

注:需要C/C++ Linux服务器开发学习资料私信“资料”(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/181560.html

(0)
上一篇 2025-06-22 12:10
下一篇 2025-06-22 12:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信