一、CAP理论

根据CAP理论,一个分布式系统不可能同时满足以下三种

  • 一致性(C:Consistency)
  • 可用性(A:Available)
  • 分区容错性(P:Partition Tolerance)

冒泡排序

CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。如果在某个分布式系统中数据无副本, 那么系统必然满足强一致性条件, 因为只有独一数据,不会出现数据不一致的情况,此时C和P两要素具备,但是如果系统发生了网络分区状况或者宕机,必然导致某些数据不可以访问,此时可用性条件就不能被满足,即在此情况下获得了CP系统,但是CAP不可同时满足

因此在进行分布式架构设计时,必须做出取舍。以下三种情况:

CA:不分区的情况下,一致性和可用性可以保证,但是舍弃分区容错性,那就变成单机模式了
CP:保证一致性和分区容错性的前提下,意味着需要进行数据同步,这时的可用性无法保障
AP:保证可用性和分区容错性的前提下,一旦出现网络波动,数据一致性无法保障

模式 例子
CA MySQL
CP Redis,MongoDB
AP 12306,淘宝