分布式事务

一 微服务主要困难

  •  单体应用拆分为分布式系统后,进程间的通讯机制和故障处理措施变的更加复杂。
  •  系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变的非常突出。
  •  微服务数量众多,其测试、部署、监控等都变的更加困难。

  对于第一个问题:参考 http://www.cnblogs.com/liufei1983/p/9033587.html。,

       对一个第三个问题:  docker, k8s,devops等的成熟,也变得比较容易实现。

  而对于第二个问题,现在还没有通用方案很好的解决微服务产生的事务问题。分布式事务已经成为微服务落地最大的阻碍,也是最具挑战性的一个技术难题。

二 传统的分布式事务的解决方案

  •  基于XA的两阶段提交
  •  TCC方案:Try、Confirm、Cancel
  •  基于消息的最终一致性:通过消息中间件保证上、下游应用数据操作的一致性。基本思路是将本地操作和发送消息放在一个事务中,保证本地操作和消息发送          要么两者都成功或者都失败。下游应用向消息系统订阅该消息,收到消息后执行相应操作。

三 高性能全局事务服务GTS  

   未完待续

原文地址:https://www.cnblogs.com/liufei1983/p/9033569.html