常见的解决方案有:可靠消息最终一致性、最大努力通知型、TCC补偿性,项目示例基于Spring Cloud
实现可靠消息最终一致性和TCC补偿性。
- ms-core:公共模块
- ms-discovery-eureka:服务注册与发现
- reliable-message-transaction:可靠消息最终一致性的示例
- tcc-transaction:TCC补偿性的示例
待补充最大努力通知型
- 可查询操作
- 幂等操作
被动方的处理结果不影响主动方的处理结果,被动方的消息处理操作是幂等操作
- 消息数据独立存储、独立伸缩,降低业务系统与消息系统间的耦合
- 对最终一致性时间敏感度较高,降低业务被动方实现成本
- 可查询操作
- 幂等操作
被动方的处理结果不影响主动方的处理结果
- 对业务最终一致性的时间敏感度低
- 跨企业的业务活动
- TCC操作
- 可补偿操作
- 可查询操作
- 幂等操作
- 强隔离性、严格一致性要求的业务活动
- 适用于执行时间较短的业务(比如处理账户、收费等业务)
例子注重展示如何实现,没有考虑性能问题,相关的优化需自行实现。