8 分布式事务的解决方案

目录

事务

分布式事务的设计理论

1:可靠性的消息子系统的设计和原理

2:最大努力型通知(定期校对)

3:TCC(一致性最强方案,性能略低)


  • 事务

  • 由一组操作构成的可靠,独立的工作单元;
  • ACID:
  • 原子性
  • 隔离性
  • 一致性
  • 持久性
  • java有三种事务,jdbc事务,jta事务,容器事务,jdbc事务无法实现分布式事务的控制,jta是可以实现的,容器事务(spring事务)一般是也是基于jta去实现的
  •  
  •  
  • 应用于分布式的主要难点是:高度并发,资源分布,大时间跨度;

标准分布式事务基于jta去实现的,分布式事务(Distributed Transaction)包括事务管理器(Transaction Manager)和一个或多个支持 XA 协议的资源管理器 ( Resource Manager )。我们可以将资源管理器看做任意类型的持久化数据存储;事务管理器承担着所有事务参与单元的协调与控制

分布式事务的设计理论

1:可靠性的消息子系统的设计和原理

  • 一般来说会把消息的发送做成一个子系统,使用关系数据库来存储需要发送的消息,才用预发送和确认发送来保证消息的一致性,当然可能会有网络问题,所以需要设计消息确认和恢复的一些定时任务
  • 一样的子系统,循环找出未成功发送或者未成功消费的一些东西进行删除或者恢复。消息管理子系统主要是提供一个可视化界面来操作一些异常的消息。显示幂等性(重复的信息只被消费一次),最后的优化建议

2:最大努力型通知(定期校对)

  • 消费端接收到消息后存储进通知服务和通知记录,然后发送通知给被动方,设置定时任务对未发送成功的通知进行重新发送,直到重新发送最大次数为止

3:TCC(一致性最强方案,性能略低)

  • 使用的是tcc-transaction轻量级分布式事务框架,原理是通过aop和拦截器进行实现
  • 另外:LCN也比较火

猜你喜欢

转载自blog.csdn.net/qq_35035078/article/details/82736244
今日推荐