CAP定理(分布式无法同时满足的三个指标)
Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。
Availability(可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝。
Partition tolerance(分区容错性):网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。
分布式架构中不能因为某个分区故障导致整个服务不可用,P需默认保障,所以只存在CP和AP。
当业务需要高可用A时,保证能够立马得到数据,所以这时候不能保证C。
当业务需要高一致C时,保证得到的数据与其他分区一致,所以需要进行数据同步,这时候不能保证A。
BASE理论(部分解决CAP问题)
Basically Available (基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。
分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论:
AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致。
CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过中,处于弱可用状态。