分布式事务实践(四)--可靠消息的最终一致性方案(集成独立消息服务)
2018-07-21 21:21
549 查看
前言
经过前面一篇文章的介绍:可靠消息的最终一致性方案(本地消息服务),我们已经了解了基于本地服务的最终一致性方案,本地消息服务有一定的优势,当然也有一定的弊端。这一篇我们就来了解下将本地消息服务优化成 独立部署的消息服务子系统。
方案介绍:
基本架构图:
关键模块:
生产者模块:业务操作;消息的持久化,投递以及确认,查询等功能。
消息子系统:存储预发送消息;确认并发送;查询状态确认超时的消息;确认消息已经被消费;查询消费确认超时的消息
MQ中间件:只是负责消息的投递
消息消费系统:负责消息的消费,以及真正的业务投递,以及MQ ack的应答;以及本地消息系统的消息确认。
消费者:真正的消费业务节点。
消息恢复系统:主要是对于消息的补单,对于超时未确认的消息进行二次发送的作用。
消息状态确认子系统:主要是对于业务状态更新超时的补单
关键流程时序图:
总结
优点:
消息服务独立部署,伸缩性以及维护性好
消息存储可以按需选择不同的方式集成实现
可以被相同的使用场景复用,降低重复建设的成本
降低业务系统以及消息系统之间的耦合。
缺点:
一次消息发送需要发送两次请求;发送方需要实现业务操作状态校验查询接口。
后面会对几个主要的模块进行介绍。
阅读更多相关文章推荐
- 分布式事务解决方案之消息最终一致性(可靠消息服务)上篇
- (微服务)分布式事务-最大努力交付 && 消息最终一致性方案
- 分布式事务解决方案之消息最终一致性(可靠消息服务)下篇
- 分布式事物学习之(可靠消息一致性方案之独立消息服务)(七)
- 【分布式事务】可靠消息最终一致性方案
- 微服务架构分布式事务解决方案设计思路(可靠消息最终一致方案-概念)
- 微服务架构分布式事务解决方案设计思路(可靠消息最终一致方案-设计方案)
- 分布式事务八_可靠消息最终一致性方案
- 分布式事务五_基于可靠消息的最终一致性_异常流程
- 分布式事务九_基于可靠消息的最终一致性代码
- 分布式事物学习之(可靠消息一致性方案之本地消息服务)(六)
- 分布式事务方案:可靠消息最终一致方案
- 分布式事务四_基于可靠消息的最终一致性
- 使用kafka消息队列解决分布式事务(可靠消息最终一致性方案-本地消息服务)
- 分布式事务解决方案一之:可靠消息最终一致性
- 分布式开放消息系统RocketMQ的原理与实践(消息的顺序问题、重复问题、可靠消息/事务消息)
- 微服务~分布式事务里的最终一致性
- 分布式事务最终一致性常用方案
- 分布式事务最终一致性常用方案
- 微服务~分布式事务里的最终一致性