首页 > 解决方案 > 分布式系统 - 如何保证至少一次发布消息?

问题描述

在将消息发布到服务总线(可能是队列)之前发生故障时,如何保持不同系统(又名有界上下文)之间的一致性。?

我想出了 3 个选项: 1. 使用 Udi Dahan 方法(Reliable Messaging - https://vimeo.com/111998645),即在与生成事件的实体相同的存储中维护发布的消息信息。2. 处理数据库事务日志,并将其发布到消息总线。3. 使用事件溯源方法。

除此之外还有什么选择吗?每种方法的优缺点是什么?

标签: microservicespublish-subscribedistributed-transactions

解决方案


像 RabbitMQ 这样的消息代理提供至少一次交付保证。


推荐阅读