分布式事务
[TOC]
一、CAP定理 一致性 Consistency 可用性 Availability 分区容错性 Partition tolerance
加州大学计算机科学家Eric Brewer提出,分布式系统有三个指标。

Eric Brewer说,这三个指标不能同时做到,只能满足三项中的两项而不可能满足全部三项,即CAP定理。
1.1 一致性 Consistency :等同于所有节点访问同一份最新的数据副本
分布式系统的几台服务器,写入之后由于同步延时等,使得几台服务器读取的结果不一致。
1.2 可用性 Availability 每次请求都能获取到非错的响应
每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据(不覆盖C)
1.3 分区容错性 Partition tolerance :区间通信可能失败
分区容错的意思是,区间通信可能失败。
以实际效果而言,分区相当于对通信的时限要求。
系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
1.4 Consistency 和 Availability 的矛盾
一致性和可用性,为什么不可能同时成立?答案很简单,因为可能通信失败(即出现分区容错)。
- 如果保证 G2 的一致性,那么 G1 必须在写操作时,锁定 G2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,G2 不能读写,没有可用性不。
- 如果保证 G2 的可用性,那么势必不能锁定 G2,所以一致性不成立。
- 综上所述,G2 无法同时做到一致性和可用性。系统设计时只能选择一个目标。如果追求一致性,那么无法保证所有节点的可用性;如果追求所有节点的可用性,那就没法做到一致性。
举例:北京的订单系统,访问上海的库存系统,可能导致失败。如果发生失败,就要在A和C之间做出选择。
要么停止系统进行错误恢复,要么继续服务但是降低一致性,所以说只能保证AP或CP
网友评论