分布式事务中,可靠消息最终一致性的方案讲解,我们也是采用以下这种模式保证分布式消息一致性,目前使用这套架构来采集上游数据,清洗数据,然后消费落到业务数据库的。
模块解读:
生产者:业务操作--法送消息到消息子系统,消息持久化之后返回结果,根据返回结果成功继续操作业务,返回结果失败终止继续操作业务。
生产者:返回结果为成功,执行完业务操作的状态通知消息子系统,业务处理成功将消息状态修改为待发送,接着在发送到消息系统MQ,业务处理失败删除该消息。
消息子系统:将待发送的消息发送,此处处理三种情况:
1、持久化消息未返还状态信息
2、已发送信息未接收到返回结果
3、确认已发送的消息被消费但未返回结果
MQ中间件:只是负责消息的投递
消息消费系统:负责消息的消费,以及真正的业务投递,以及MQ ack的应答;以及本地消息系统的消息确认。
消息恢复:主要是对于消息的补单,对于超时未确认的消息进行二次发送的作用。
消息状:主要是对于业务状态更新超时的补单