分布式事务-CAP定理与BASE理论

CAP定理

  • Consistency 数据一致性,分布式系统中各个服务节点的数据要一致,访问不同节点获取的数据要一致
  • Availability 可用性,分布式系统中每个服务都要保证可用
  • Partition tolerance 分区容错性,分布式系统中由于网络问题导致部分节点与其他节点失去连接,形成独立分区,即便出现分区,整个系统也要持续对外提供服务。

由于网络问题是不可完全避免的,所以分区容错性P是必须要满足的,但出现分区情况就不能同时保证数据一致性C和可用性A,因为出现网络故障时,要保证数据一致性C的话,节点间不能进行数据同步,网络有问题的节点就会一直阻塞等待数据同步,从而导致节点服务不可用,不能保证可用性A。要保证可用性A的话,节点间数据不能同步,就不能保证数据一致性C。
因此,CAP定理有两种情况,AP 和 CP

BASE理论

BASE理论是对CAP无法同时满足CAP的一种解决思路,包含三个思想:

  • Basecally Available(基本可以):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
  • Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
  • Evevtually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

CAP定理和BASE理论可用于解决分布式事务的问题

  • AP模式,各微服务的分支事务各自执行并提交,允许出现结果不一致,然后采取弥补措施恢复数据即可,实现最终一致
  • CP模式,各微服务的分支事务各自执行完后相互等待,同时提交/回滚,达成 强一致,但事务等待过程中,会锁定资源,使系统处于弱可用状态。

无论是AP还是CP,都需要获取其他微服务的事务状态,因此需要一个事务协调者(Seata中的TC)来与每一个子事务通信,来协调每一个子事务

注:每一个微服务的子系统事务,称为分支事务;有关联的各个分支事务在一起称为全局事务

你可能感兴趣的:(分布式)