使用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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月09日 21时51分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2021最新 上海互联网公司排名
2019-04-30
字节vs快手!取消大小周之战
2019-04-30
送一个闲置显示器!
2019-04-30
Oracle 行转列 pivot函数基本用法
2019-04-30
Oracle字符串分隔符替换(替换奇数个或偶数个)
2019-04-30
Oracle 利用 UTL_SMTP 包发送邮件
2019-04-30
Oracle 自定义函数实现split功能,支持超长字符串和clob类型的分隔
2019-04-30
Oracle 的循环中的异常捕捉和处理
2019-04-30
Oracle通过pivot和unpivot配合实现行列转换
2019-04-30
给Oracle数据库换一个1522端口的监听
2019-04-30
Excel表格数据生成ECharts图表
2019-04-30
阿里云短信服务python版,pyinstaller打包运行时缺少文件
2019-04-30
Oracle的pfile和spfile的一点理解和笔记
2019-04-30
WebService的简单案例记录(Java)
2019-04-30
Html利用PHP与MySQL交互
2019-04-30
dos简单命令
2019-04-30
mysql的安装与卸载与Navicat远程连接
2019-04-30
java实现稀疏数组及将稀疏数组存入硬盘中
2019-04-30
2021-05-18
2019-04-30