使用MQ来保证分布式事务的最终一致性
发布日期:2021-06-29 22:24:26 浏览次数:2 分类:技术文章

本文共 564 字,大约阅读时间需要 1 分钟。

使用MQ来保证分布式事务的最终一致性

使用MQ来保证分布式事务的最终一致性

参考URL:https://www.bbsmax.com/A/obzbM9QVdE/

在这里插入图片描述生产者的逻辑

1、订单入库
2、消息记录入库
3、发送消息(采用确认模式)
4、mq收到消息之后给生产端一个确认消息
5、生产端监听这个确认消息
6、根据监听结果操作消息表的状态
7、定时任务定时去操作消息状态为1未发送的记录,就是那些没有监听到结果的记录进行重新发送

消费者的逻辑

1、将收到消息的消息入库
2、处理消息失败消息记录的状态就为未处理
3、处理消息成功修改消息记录的状态为处理成功
4、收到相同的消息id的消息直接丢弃
5、定时任务去操作那些未处理,并且已经经过一段时间的消息
6、针对那些一直处理失败的,且很长一段时间都没办法处理成功的消息交由人工或者其他途径处理

需要注意的问题

1、消息的100%投递
首先我们需要保证的就是消息一定要投递出去,要是我们消息都不能保证投递成功,那么后面的逻辑就走不下去了。

2、我们需要保证幂等性(无论多少次操作,最后造成的结果和只执行一次造成的结果是一样的。)

消息肯定会出现重复投递的问题,这里应该由消费端去保证,重复的消息不能进行消费

而保证这两个问题的方式就藏在上面的逻辑流程图中,请仔细揣摩其中的用意。

转载地址:https://docker.blog.csdn.net/article/details/106249406 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Filecoin-入门基础概念
下一篇:IPFS-文件HASH值计算

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月09日 21时51分35秒