分布式事务解决方案(MQ)

分布式系统的定义:一个用户的请求,由多个系统协同处理

思路:最终一致性 BASE理论(非实时一致性)

一.分布式事务的几种解决方案

1.基于数据库的XA/JTA协议的方式 --需要数据库厂商支持

2.异步校验数据的方式    --支付宝、微信等主动查询订单的状态、对账单的形式

3.基于可靠消息 (MQ)的解决方案 --异步场景、通用性强、扩展性强

4.TCC编程式解决方案--阿里等自己封装的DTX

二.消息队列中间件(MQ)

本质:存储数据,独立运行(类似java LinkedBolckQueue)

没有sql语句、强制结构化数据、强制事务 --功能简单,没数据库那么复杂 --性能比数据库高很多

mq如何可靠:

1.如何确保消息一定发送到Mq 

1).mq有消息发送确认机制--发送者可以收到确认回执(ack)

2).保存发送mq消息的数据表,保存状态-- 收到回执,修改状态

3).定时检查消息表是否发送--未发送则重发

2.确保消息被正确消费

1).消息消费确认机制--给mq发送回执(ack)

2).未发送回执,mq会继续推送该消息

3).程序无法预知异常,需要手动干预(监控监控、短信、微信进行预警、手动干预)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 根据微服务架构的鼻祖 Martin Fowler 的忠告,微服务架构中应当尽量避免分布式事务。 分布式事务的讨论主...
    jeffrey_hjf阅读 4,558评论 0 1
  • 根据微服务架构的鼻祖 Martin Fowler 的忠告,微服务架构中应当尽量避免分布式事务。 分布式事务的讨论主...
    码道功臣阅读 19,045评论 6 70
  • 文/Dailei生命是脆弱的,经不起一碰! 01 高中有一次月考,当时刚刚发下卷子,本来安静的环境突然有人来哭丧,...
    Dailei阅读 6,752评论 2 42
  • 易效能时间管理 亲子践行月度检视+第五组(90天)+蔡洁雯(陈伟烨妈妈) (一)目标 #耐心、有爱,让孩子保持良好...
    Stacycai阅读 2,144评论 0 0
  • 我的名字叫小黑,我是来自山东泰安泰山区的一只梨花猫。 我特别喜欢吃鱼,我的主人特别喜欢给我钓鱼吃,所以我特别喜欢我...
    6a9fc6819b0e阅读 1,549评论 0 1

友情链接更多精彩内容