浅谈cap
cap:c(consistency)一致性
a(availability)可用性
p(patition tolerance) 分区容错性
两个系统a,b
满足c:当a修改数据,b去读a,要两边数据相同,才能保持一致。
满足a:a,b都可被访问,可用性
满足p:系统a,b都是网络分区中某个区网络故障,依然保证系统可用。
cap定理:一个分布式系统,最多满足一致性,可用性,分取容错性的两项
这里要说清楚为什么只能满足其二?
当网络发生故障,a向b同步数据的时候,就会失败,就是没办法保证p.
当保证p,a系统改了某个数据,要b系统访问到数据是修改后的数据时,才能保证c,这样在同步期间,任何人不能访问不然就没办法保证数据一致,这个时候最多满足cp,因为b此时不可用
当保证p,a系统改了某个数据,要b系统访问到数据是修改后的数据时,单如果此时要强制b可以访问,就保证了ap,但是数据可能没同步过来,不能保证c
base理论是什么?
由于理论中c,a无法同时兼得,ebay架构师提出base理论,通过牺牲数据的强一致性,来保证系统可用。
dubbo使用zk作为注册中心,保证的是一致性和分区容错,保证的是cp。
springcloud使用Eureka作为注册中心,保证的是可用性,保证的ap。

浙公网安备 33010602011771号