CAP理论

Consistency :所有节点在同一时间看到相同的数据

Availability :部分节点故障,剩下的节点可以继续工作

Partition tolerance :系统会继续工作,即使发生网络分区,分区容错是分布式系统中不可避免的

网络分区:部分节点与另一部分节点间由于网络故障无法通信

在CAP三个条件中,任何时候都只能满足两个。因此就会产生如下系统模型:

CA:,常见于必须要所有节点都达到法定投票数的协议(full strict quorum protocols),比如2PC,3PC

CP:常见于允许超过小于一半的节点故障的协议(majority quorum protocols ),如paxos,raft

AP:常见于冲突解决的协议,如gassip,dynamo

从CAP理论可以得出如下推论:

  • 早期的分布式关系型数据库没有考虑网络分区,他们大多是CA模型
  • 发生网络分区时,一致性和可用性不能兼得
  • 强一致性和性能不能兼得,强一致性要求通过节点间通信来保证,这会导致高延迟。随着节点的增多,问题会更明显
  • 如果在发生网络分区是,不想放弃可用性,那么必须降低一致性要求

实际上CAP理论中并不总是3选2,一致性和可用性并不是2选1,除非要求强一致

你可能感兴趣的:(CAP理论)