回顾分布式事务的解决方案

什么是分布式事务

  分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器「分别位于不同的分布式系统的不同节点之上」

  一个大的操作由N多的小的操作共同完成。而这些小的操作又分布在不同的服务上。针对于这些操作,「要么全部成功执行,要么全部不执行」,核心就是要【保证不同服务状态结果的一致性

分布式理论

  1、CAP定理  

  在一个分布式系统中,以下三点特性无法同时满足:

一致性(C):
在分布式系统中的所有数据备份,「在同一时刻是否拥有同样的值」。(等同于所有节点访问同一份最新的数据副本)

可用性(A):
在集群中一部分节点「故障」后,集群整体「是否还能响应」客户端的读写请求。(对数据更新具备高可用性)

分区容错性(P):
即使出现「单个组件无法可用,操作依然可以完成」

      具体地讲在分布式系统中,在任何数据库设计中,一个Web应用「至多只能同时支持上面的两个属性」。显然,任何横向扩展策略都要依赖于数据分区。因此,设计人员必须在一致性与可用性之间做出选择。

  2、BASE理论

  在分布式系统中,我们往往追求的是可用性,它的重要程序比一致性要高,那么如何实现高可用性呢?

  前人已经给我们提出来了另外一个理论,就是BASE理论,它是用来对CAP定理进行进一步扩充的。BASE理论指的是:

  • 「Basically Available(基本可用)」
  • 「Soft state(软状态)」
  • 「Eventually consistent(最终一致性)」

  BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。

 

分布式事务解决方案

  1、两阶段提交(2PC)

  2、三阶段提交(3PC)

  3、补偿事务(TCC)

  4、本地消息表

       5、消息事务

       6、最大努力通知

       7、Sagas事务模式

         

 

posted @ 2021-03-12 16:03  金仙儿追鹿仙  阅读(48)  评论(0编辑  收藏  举报