BandMan home

可扩展的网络服务

复制品是服务扩展性的关键部分。

Sandstorm框架(staged event-driven architecture)

简介:我们的目标是开发一个通用框架,用于创作高并发且条件良好的服务实例,以优雅地处理负载。我们的目标是通过提供帮助软件开发人员获取这些属性的通用机制来降低这种复杂性。

SEDA使用了线程和基于事件驱动的程序模型,来管理高并发、I/、调度和网络服务需求的资源管理。

应用程序以**网络阶段**的概念构建每个阶段代表一个健壮的构建块,可以通过阈值或过滤其事件队列来单独调节以加载。

进程和线程:并发编程的模型

然而,在上下文切换时间和内存占用方面需要高开销,这限制了并发性。

问题1:该框架面对的现实问题是什么?
回答:

背景和相关工作

  1. 基于线程的并发模型的使用
  2. 基于事件的可扩展并发模型

事件驱动的并发

动态资源控制器

为了让每个应用程序/阶段有操作控制权,SEDA使用一组资源控制器,可以自动适应应用的资源使用(基于观察性能和需求的应用)。

控制器观察stage运行时的特征,调整分配和参数调度,以满足性能目标。

**实现:**

Thread pool controller、Batching controller

Fork me on GitHub