base理论
base 是指basically available 基本可用,soft-state 软状态,eventual-consistency 最终一致性。base理论的核心思想是 即使无法做到强一致性,也可以做到最终一致性。
cap 理论
cap 原则指的是 在一个分布式系统中,一致性,可用性,分区容错性,这三个特性最多满足两个,三者不可兼得。
一致性是指,在同一时刻的数据完全一致。可用性是指任何时候对分布式系统总是可以成功读写。分区容错性是指某些节点或者网络故障的时候,仍然能够提供满足一致性和可用性的服务。
既然无法满足三者,那就有取舍。
第一个就是 CA ,放弃分区容错性,但是这也就等同于放弃分布式系统,ca 只存在于单机系统。例如:单节点的mysql挂掉,系统就不能正常读写了。
第二个就是 CP ,也就是一致性和分区容错性。允许极端的情况下,服务可以出现短暂的不可用。采用CP原则的分布式系统有:zk,zk是一个分布式协调系统,强一致性是 zk 的主要目标,允许出现短暂的系统不可用,正式这个原因zk 不能用来做微服务的服务注册中心。其他选择 CP 实现的 consul,etcd等
第三个就是 AP ,也就是可用性和分区容错性。允许数据出现一段时间的不一致,但保证最终一致性。采用ap原则的分布式系统有,eureka,nacas,在服务注册的场景,短期的服务不一致不会对微服务整体造成影响,所以ap 原则是微服务注册中心的首选。