2.1 理论基础

一、事务的ACID原则

  1. A:原子性:事务中的所有操作,要么全部成功,要么全部失败

  2. C:一致性:要保证数据库内部完整新约束、声明性约束

  3. I:隔离性:对同一资源操作的事务不能同时发生

  4. D:持久性:对数据库做的一切修改将永久保存,不管是否出现故障

二、分布式事务问题

在分布式系统下,一个业务跨越多个服务或数据源,每个服务都是一个分支服务,要保证所有分支事务最终状态保持一致,这样的事务就是分布式事务

三、CAP定理

  1. CAP定理,1998年,加州大学的计算机科学家Eric Brewer提出,分布式系统有三个指标:

    1. Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致

    2. Availability(可用性):用户访问集群中的任意健康节点,必须得到相应,而不是超时壶拒载

    3. Partition Tolerance(分区容错性):

      1. Partition(分区):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点失去联系,形成独立分区

      2. Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务

    分布式系统无法同时满足这三个指标,这个结论就是CAP定理

四、BASE理论

  1. BASE理论是对CAP定理的一种解决思路,包含三个思想:

    1. Basically Available(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用

    2. Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态

    3. Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致

  2. 而分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论:

    1. AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一直

    2. CP模式:各个子事务执行后相互等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于若可用状态

  3. 分布式事务模型

    1. 解决分布式事务,各个子系统之间必须能感知到彼此的事务状态,才能保证状态一直,因此需要一个事物协调者来协调每一个事物的参与者(子系统事务)

最后更新于

这有帮助吗?