CAP定理
分布式系统中有三个指标:
-
Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。
-
Availability(可用性):用户访问分布式系统中的任意健康节点,必须能得到响应,不能是超时或拒绝。
-
Partition tolerance(分区容错性)
-
Partition(分区):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点失去连接,形成独立分区。
-
tolerance(容错):独立分区中的节点也要持续对外提供服务。
-
分布式系统节点之间肯定是需要网络连接的,分区(P)是必然存在的。
AP:保证访问的高可用性(A),可以持续对外提供服务,但不能保证数据的强一致性。
CP:保证访问数据的强一致性(C),就要放弃访问的高可用性。
BASE理论
Base理论是对CAP的一种解决思路,包含3个思想
-
基本可用: 基本可用是指分布式系统在出现不可预知故障的时,允许损失部分可用性。但是,这绝不等价于系统不可用。 比如: ① 响应时间上的损失:正常情况下,一个在线搜索引擎需要在0.5秒之内返回给用户相应的查询结果,但由于出现故障,查询结果的响应时间增加了1~2秒;② 系统功能上的损失:正常情况下,在一个电商网站上进行购物的时候,消费者几乎能够顺利完成每一笔订单,但是在一些节日大促购物高峰的时候,由于消费者的购物行为激增,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面。
-
软状态: 软状态是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
-
最终一致性: 最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。
解决分布式事务的思想和模型
-
最终一致思想:各分支事务分别执行并提交,如果有不一致的情况,再想办法恢复数据(AP)
-
强一致思想:各分支事务执行完业务后不要提交,等待彼此结果,而后统一提交或恢复(CP)
好的博客: