反应器模式

科技工作者之家  |   2020-11-17 18:06

反应器模式是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式。

简介当请求抵达后,服务处理程序使用解多路分配策略,然后同步地派发这些请求至相关的请求处理程序。1

结构**资源:**可供系统输入或输出的资源。

**同步事件解多路器:**使用一个事件循环 ,以阻止所有的资源。当可以启动一个同步操作上的资源不会阻塞,多路分解器发送资源到分发器。

**分发器:**处理请求程序的注册和注销。将资源分发到相关的处理程序.

**请求处理器:**应用程序定义的请求处理程序和相关资源。1

属性所有的反应器系统在定义上是单线程的,但可以在多线程环境中存在。

优点反应器模式可完全分离程序特定代码,这意味着应用可分为模块化的,可复用的组件。另外,由于请求的处理程序是同步调用,反应器模式可允许简单粗粒并发而不必添加多线程并发系统的复杂性。1

限制由于反向的流程控制,反应器模式比过程模式更难以调试。此外,因为请求处理器只会被同步调用,因此会限制反应器模式的最大并发数,特别是在对称多处理硬件。反应器模式的可扩展性,不仅受限于请求处理器的同步调用,同时也受解多路器限制。2

并发控制在计算机科学,特别是程序设计、操作系统、多处理机和数据库等领域,并发控制(英语:Concurrency control)是确保及时纠正由并发操作导致的错误的一种机制。

数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。下面举例说明并发操作带来的数据不一致性问题:

现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 X。两处售票点同时卖出一张车票,同时修改余额为 X -1写回数据库,这样就造成了实际卖出两张火车票而数据库中的记录却只少了一张。

产生这种情况的原因是因为两个事务读入同一数据并同时修改,其中一个事务提交的结果破坏了另一个事务提交的结果,导致其数据的修改被丢失,破坏了事务的隔离性。并发控制要解决的就是这类问题。

封锁、时间戳、乐观并发控制和悲观并发控制是并发控制主要采用的技术手段。2

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所