分布式事务:CAP定理

分布式事务

[TOC]

一、CAP定理 一致性 Consistency 可用性 Availability 分区容错性 Partition tolerance

加州大学计算机科学家Eric Brewer提出,分布式系统有三个指标。


分布式系统_CAP定理.png

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容