现代C++软件架构:方法与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 基于事件的架构

基于事件的系统是指架构围绕着处理事件来设计的系统。这个系统包含生成事件的组件、事件传播的通道,以及对这些事件做出反应的侦听器,侦听器也可能触发新的事件。这种架构提高了异步性,降低了耦合度,提高了性能和可伸缩性,同时也易于部署。

虽然有这些优势,但还有一些挑战需要解决,其中之一便是如何应对这类系统的创建复杂性。所有队列都必须进行容错,以便在处理期间不丢失任何事件。以分布式方式处理事务也是一个挑战。使用关联ID模式来跟踪进程之间的事件,搭配监控技术,可以节省调试的时间,省去大量烦恼。

基于事件的系统包括流处理器和数据集成系统,以及旨在实现低延迟或高可伸缩性的系统。

现在,我们来讨论这类系统中使用的常见拓扑结构。