分布式事务实践(四)--可靠消息的最终一致性方案(集成独立消息服务)

前言

经过前面一篇文章的介绍:可靠消息的最终一致性方案(本地消息服务),我们已经了解了基于本地服务的最终一致性方案,本地消息服务有一定的优势,当然也有一定的弊端。这一篇我们就来了解下将本地消息服务优化成 独立部署的消息服务子系统。

方案介绍:

基本架构图:
这里写图片描述

关键模块:

生产者模块:业务操作;消息的持久化,投递以及确认,查询等功能。
消息子系统:存储预发送消息;确认并发送;查询状态确认超时的消息;确认消息已经被消费;查询消费确认超时的消息
MQ中间件:只是负责消息的投递
消息消费系统:负责消息的消费,以及真正的业务投递,以及MQ ack的应答;以及本地消息系统的消息确认。
消费者:真正的消费业务节点。
消息恢复系统:主要是对于消息的补单,对于超时未确认的消息进行二次发送的作用。
消息状态确认子系统:主要是对于业务状态更新超时的补单

关键流程时序图:
这里写图片描述

总结

优点:
消息服务独立部署,伸缩性以及维护性好
消息存储可以按需选择不同的方式集成实现
可以被相同的使用场景复用,降低重复建设的成本
降低业务系统以及消息系统之间的耦合。

缺点:
一次消息发送需要发送两次请求;发送方需要实现业务操作状态校验查询接口。

后面会对几个主要的模块进行介绍。

猜你喜欢

转载自blog.csdn.net/xuxian6823091/article/details/81149288