美文网首页
分布式事务方案

分布式事务方案

作者: Ethan_zyc | 来源:发表于2021-07-29 12:31 被阅读0次

XA方案/两阶段提交方案

这个可以看我之前发的分布式事务之2PC和3PC
2PC主要使用场景是一个系统中有多个数据源,这多个数据源之间需要事务去保证数据的一致性,具体方案就是JTA 使用JTA实现多数据源的事务管理。 但开发中不建议直接操作别的数据库,多数据源很多都是为了查询数据,不会设计到增删改数据,所以不常用。

TCC方案

try - confirm - cancel 拿银行转账举例子:

  1. try:资金校验、冻结

  2. confirm:转账

  3. cancel:如果转账失败手动补偿/恢复数据

适用场景,对一致性要求极高

本地消息表方案

image
  1. A系统先插入业务表处理A系统中的业务逻辑,再插入消息表,状态是待确认,在zk中对orderId=xx的node进行监听

  2. 通过mq发消息给B系统

  3. B系统先插入消息表,并且防止重复消费,必须保证幂等性

  4. B系统进行业务操作,如果成功,修改消息表中的值,修改zk中的值,A系统监听到后,修改消息表中的值

  5. B系统如果失败了,就不会修改消息表,A系统会轮询A系统的消息表,超时没有成功的会再次发送,超时时间和重试次数根据自己业务情况来定

缺点:大量依赖消息表,高并发场景下不适用

可靠消息最终一致性方案

image

为了高并发,舍弃消息表,基于MQ来实现事务,阿里的RocketMQ就支持事务

最大努力通知方案

image

系统A执行完会发送消息到MQ,MQ通知最大努力通知系统,然后最大努力通知系统会记录这个消息,发给系统B,直到成功,或者到达最大重试次数。

总结

尽量避免分布式事务。

相关文章

  • 分布式事务的解决方案

    本文从以下几个方面介绍分布式事务的解决方案: 为什么会有分布式事务分布式事务经典模型分布式事务解决方案 为什么会有...

  • 032 某金服面试题

    分布式事务 分布式锁方案和区别 分布式缓存 分布式选举问题 分库分表的方案 MVCC 方案 MySQL 的事务的实...

  • 3.11:分布式事务

    ​本文将梳理微服务架构下,分布式事务的常用方案。整体包含以下三部分: 分布式事务的提出 分布式事务主流方案 分布式...

  • 分布式事务

    目录 分布式事务解决方案 长事务: saga 短事务: 设计的时候尽量短事务,能不用分布式事务尽量不用,分布式事务...

  • 分布式事务解决方案

    分布式事务解决方案 分布式事务的主要解决方案 XA方案 - 两阶段提交方案 TCC方案 本地消息表 可靠信息最终一...

  • 微服务中分布式事务解决方案

    分布式事务解决方案 1、阿里巴巴seata分布式事务 2、 京东ShardingSphere分布式事务 3、tcc...

  • 分布式事务实现的几种方案

    参考[Java复习] 分布式事务 Part 2java分布式事务,及解决方案 1.两阶段提交方案/XA方案   这...

  • 分布式

    1、分布式事务 1.1 两阶段提交方案/XA方案 Spring+JTA 这种分布式事务方案,比较适合单块应用里,跨...

  • 分布式系统相关问题二

    分布式事务 两阶段提交(也叫XA方案),这个方案少用image.png TCC方案 (必须严格保证分布式事务的话就...

  • 微服务 14:初探微服务分布式事务 - Seata

    1:什么是事务,什么是ACID 2:什么是分布式事务 3:分布式事务解决方案 4:Seata 分布式事务框架 5:...

网友评论

      本文标题:分布式事务方案

      本文链接:https://www.haomeiwen.com/subject/sgbxvltx.html