服务器架构是支撑起项目的基础设施,今天要给大家讲解的是一个高并发架构SEDA,你们知道它是什么架构吗?它是没有传统架构的各种缺点的,跟小编一起来了解一下吧。
SEDA是什么?
一个高并发服务器架构,它的核心思想是把一个请求处理过程分成几个Stage,架构中不同资源消耗的Stage使用不同数量的线程来处理,Stage间使用事件驱动的异步通信模式。
SEDA特点是什么?
1)服务会通过queue分解成stage:
SEDA中每个stage代表FSM的一个状态集合
Queue引入控制边界
2)可以使用线程池驱动stage运行:
将事件处理同线程的创建和调度分离
Stage可以顺序或者并行执行
Stage可能在内部阻塞,给阻塞的stage分配较少的线程
SEDA主要应用有哪些?
1.Stage
1)应用逻辑封装到Event Handler
它接收到许多事件,然后处理这些事件,再派发事件加入其他Stage的queue
它对queue和threads并没有直接的控制
Event queue会吸纳过量的负载,有限的线程池维持并发。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!
2)Stage控制器
负责资源的分配和调度
控制派发给Event Handler的事件的顺序及数量。
Event Handler可能在内部丢弃、过滤、重排序事件。
2.应用=Stage网络
1)有限队列
入队有可能