什么是分布式事物?
在分布式系统下,一个业务跨越多个服务或者数据源,每个服务都是一个分支事物,要保证所有分支事物最终状态一致,这样的事物就是分布式事物。
分布式事务的简单案例:
微服务下单业务,在下单时会调用订单服务,创建订单并写入数据库,然后订单服务调用账户服务和库存服务:
账户服务负责扣减用户余额
库存服务负责扣减商品库存
CAP定理
分布式系统有三个指标,但是分布式系统无法同时满足这三个指标:
Consistency
Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致
Availability
Availability (可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝
Partition tolerance
Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。
Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务
分布式系统节点通过网络连接,一定会出现分区问题(P),当分区出现时,系统的一致性(C)和可用性(A)就无法同时满足
BASE理论
BASE理论是对CAP的一种解决思路,包含三个思想:
Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后, 最终达到数据一致
而分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论:
分布式事务模型
解决分布式事务问题,各个子系统之间必须能感知到彼此的事务状态,才能保证状态一致,因此需要一个事务协调者来协调每一个事务的参与者(分支事务)。
有关联的各个分支事务在一起称为全局事务
总结
简述BASE理论三个思想:
解决分布式事务的思想和模型: