在事件驱动的体系结构中处理多事件依赖性

Pat*_*ick 11 event-driven publish-subscribe microservices

如果您拥有事件驱动的体系结构并且订阅事件的服务必须等待多个事件(相同类型)才能继续创建链中的下一个事件,那么最佳实践是什么?

一个例子是图书订单处理服务,在创建订单已被选中的事件之前,必须等待订单中的每本图书由仓库处理,以便运送服务(或类似的东西)接收订单并开始准备运输.

Bis*_*hoy 13

Tom提到的聚合器旁边的另一个有用模式是一个传奇模式(一个迷你工作流程).我之前使用它来使用名为NServiceBus的消息库来处理相互关联的多条消息.

该模式非常有用,非常适合长时间运行的进程.即使您的相关消息是不同的消息,例如OrderStarted,OrderLineProcessed,OrderCompleted.


tom*_*ern 7

您可以使用Aggregator模式,也称为Parallel Convoy.

基本上,您需要有一些方法来识别需要聚合的消息,以及何时收集整个聚合集,以便可以开始处理.

没有外出购买本书*,Apache Camel集成平台网站在实现聚合器模式方面有一些很好的资源.虽然这显然是Camel特有的,但你可以看到涉及到什么样的东西.

*免责声明,我与Adison Wesley或本书的任何作者都没有任何关联......