事件通知器与事件 API:构建松耦合微服务架构
1. 事件编排与组件变更通知
在微服务架构中,我们常常使用事件编排(Event Choreography)来协调多个组件。当某个组件发生变化时,对该变化感兴趣的其他组件能够做出相应反应,同时避免通过 API 进行紧密耦合。事件编排通过事件(Event)来传达每个变化的信息。
那么,组件应该如何以及何时向其他组件宣布变更呢?我们需要遵循一些原则。首先,并非每个变化对其他组件都具有重要意义,因此需要有选择性地传达变化及其时机,避免组件之间的过度耦合。这遵循了微服务设计中的松散耦合原则,同时允许系统进行扩展,而无需暴露组件的实现细节。
另外,要避免通过数据模型来耦合组件。例如,在航运示例中,如果每当潜在客户从购物车中添加或移除商品时,订单处理团队就开始挑选、包装、拆包和重新上架商品,这显然是不合理的。因此,设计每个组件为事件通知器(Event Notifier),使其能够将最重要的变化作为事件进行宣布。
1.1 事件通知器的实现
事件编排依赖于事件的发布。在实现事件系统时,我们需要让组件能够在发生感兴趣的事情时发出信号,以便其他感兴趣的组件能够得到通知并采取适当的行动。为此,我们将组件设计为事件通知器。
事件通知器至少要实现某种通知机制,当发生感兴趣的事件时,它会将事件发布到事件主干(Event Backbone)的某个主题上。需要注意的是,事件通知器无需了解哪个组件会接收和处理该事件。
1.2 选择发布的事件
决定实现事件通知器时,最紧迫的问题之一是选择要发布哪些事件,这涉及到服务编排(Service Orchestration)
事件通知器与API构建微服务
超级会员免费看
订阅专栏 解锁全文
176万+

被折叠的 条评论
为什么被折叠?



