码迷,mamicode.com
首页 > Web开发 > 详细

dotnetcore 中的分布式消息事务

时间:2020-06-18 16:20:22      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:直接   回退   中间   https   中间件   rabbitmq   提醒   system   转发   

以前觉得分布式事务要和数据库事务一样,一个失败就要回退(2pc),直到看了

https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html

才发现那样并不好。比如你下单买了一件衣服,但是这件衣服尺码没了,商家回直接把钱退给你吗?

还是消息中间件转发这种比较合适,事务A完成后订阅发布给事务B,如果事务B因某种原因不能完成,消息回停留在rabbitmq中,隔一段时间再重试,或者发邮件提醒管理员来解决事务B不能提交问题。而不是暴力的将事务A也回退回去。

 

 

 数据库中也会记录消息转发的状态

技术图片

 

 

 

 

dotnetcore cap 的作者 博客园

https://www.cnblogs.com/savorboard/p/cap.html

https://www.cnblogs.com/savorboard/

dotnetcore 中的分布式消息事务

标签:直接   回退   中间   https   中间件   rabbitmq   提醒   system   转发   

原文地址:https://www.cnblogs.com/hallejuayahaha/p/13157857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!