microservices - 分布式系统 - 如何保证至少一次发布消息?
问题描述
在将消息发布到服务总线(可能是队列)之前发生故障时,如何保持不同系统(又名有界上下文)之间的一致性。?
我想出了 3 个选项: 1. 使用 Udi Dahan 方法(Reliable Messaging - https://vimeo.com/111998645),即在与生成事件的实体相同的存储中维护发布的消息信息。2. 处理数据库事务日志,并将其发布到消息总线。3. 使用事件溯源方法。
除此之外还有什么选择吗?每种方法的优缺点是什么?
解决方案
像 RabbitMQ 这样的消息代理提供至少一次交付保证。
推荐阅读
- c# - 中点圆画圆问题
- jenkins - 调用块传递给带有参数的管道步骤,从插件
- javascript - 如何从我的控制器向我的 ajax 方法发送数据?
- node.js - SyntaxError:请求的模块“graphql-relay”未提供名为“fromGlobalId”的导出
- java - 返回字符串中元素的真值的布尔语句直接相互跟随
- javascript - 有没有办法在 React 中进行嵌套导入?
- javascript - 替换对象中的嵌套字段值
- node.js - SSH 隧道阻止我生成的脚本退出
- html - 在 Bootstrap 4 网格区域内显示视频
- openshift - OpenShift 中所有 SCC 的详细描述