山东锦华建设集团有限公司网站,西安网红打卡景点排行榜,手工做女宝宝衣服的网站,怎么在网站上添加广告代码一、定义
事件驱动的架构是围绕事件的发布、捕获、处理和存储#xff08;或持久化#xff09;而构建的集成模型。 某个应用或服务执行一项操作或经历另一个应用或服务可能想知道的更改时#xff0c;就会发布一个事件#xff08;也就是对该操作或更改的记录#xff09;或持久化而构建的集成模型。 某个应用或服务执行一项操作或经历另一个应用或服务可能想知道的更改时就会发布一个事件也就是对该操作或更改的记录另一个应用或服务便可以获取和处理该事件继而执行更多操作。
二、基本原理
事件驱动架构以事件作为系统间通信的基本单位系统中的各个组件通过发布和订阅事件来进行交互。基本原理包括以下几个要素 1. 事件事件是发生在系统中的某种动作或状态变化它可以是用户操作也可以是其他组件的响应。每个事件都有一个唯一的标识符用于区别不同的事件类型。 2. 发布-订阅模式在事件驱动架构中系统中的某个组件可以发布发布者事件而其他组件可以订阅订阅者这些事件。当有事件发布时所有订阅该事件的组件都会收到通知。 3. 事件处理事件的处理是事件驱动架构的核心。当一个事件被发布后订阅该事件的组件会执行相应的事件处理函数。事件处理函数可以是系统内置的默认处理函数也可以是开发者自定义的处理逻辑。 4. 事件传递事件的传递是指事件在系统中的传递过程。一个事件可以触发其他事件的发布从而形成事件链。事件传递可以是同步的也可以是异步的取决于具体的业务需求。
三、实现方式
事件驱动架构模式主要包含两种实现方式分别是中介者拓扑Mediator Topology代理者拓扑Broker Topology。
3.1 中介者拓扑结构
中介者拓扑结构需要在一个事件通过 Mediator 时精心安排好具体的步骤适合有多个步骤的事件。(有点工作流的感觉)。比如在交易系统中每个请求流程必须经过特定的步骤如验证、订单、配送以及通知买家等。在这些步骤中有些步骤是串行有些可以并行完成。 主要包括 4 个基本组件
事件队列event queue接收事件的入口存储待处理事件分发器event mediator将不同的事件分发到不同的业务逻辑单元事件通道event channel分发器与处理器之间的联系渠道事件处理器event processor实现业务逻辑处理完成后会发出事件触发下一步操作
示例以一个处理保险流程的例子来说明如图 3.2代理者拓扑Broker Topology
代理者拓扑主要由 Event Processor 和 Event Channel 构成事件之间可能彼此是相互关联的。例如一个 Event Processor 的处理结果是下一个 Event Processor 需要消费的事件每个 Processor 必须完成自己的工作其他 Processor 才能开始执行整个事件处理过程像一条彼此相扣的链条只有整个流程结束才能形成一个完整的业务逻辑。类似于职责链或管道模式。 示例同样以一个处理保险流程的例子来说明如图 四、优点与缺点 事件驱动架构可以实现系统的松耦合使各个组件之间解耦具有以下优点
1. 可扩展性通过事件驱动架构可以方便地增加、修改或删除系统中的组件而不会影响其他组件的正常运行。
2. 灵活性每个组件可以独立开发和测试不受其他组件的影响。这样可以更好地适应需求的变化或更新迭代。
3. 可重用性事件驱动架构可以将特定的功能封装成独立的组件使其可以在系统中的多个地方进行复用减少重复开发的工作量。 4. 可测试性由于各个组件之间解耦可以更加方便地对单个组件进行单元测试和集成测试提高系统的可测试性和稳定性。
缺点
一旦环境变化需要代码调整或增加功能时通常比较麻烦和费时部署比较麻烦即使只修改一个小地方往往需要整个软件重新部署不容易做持续发布软件升级时可能需要整个服务暂停扩展性差用户请求大量增加时必须依次扩展每一层由于每一层内部是耦合的扩展会很困难
参考
事件驱动的架构 | IBM
事件驱动架构 - 光星の博客
13种常见软件体系结构风格定义分析、结构图、优缺点_软件体系结构设计风格-CSDN博客