zookeeper的一致性
程序员文章站
2022-06-02 11:47:11
...
zookeeper是分布式服务框架,zk是强一致性的,即分布式数据一致性。在多个zk中,其中一台服务器宕机,zk集群不可访问,选举完毕后,在对外暴露(服务中会缓存zk中的保存的url),保证每一个zk对外一致性。
集群中的的服务保持一致性,强一致性在同步期间不对外开房,可用性对外开放,也就是说在强一致性,zk服务器挂了一台,剩下的所有都暂停对外服务,如果是可用性,宕机了还可以继续访问,强一致性和可用性是不并存的。
CAP:
Consistency强一致性
Availability 最终一致性(弱一致性)
Partitiono Tolerance分区容错性
啥意思?
强一致性上面已经解释过
弱一致性即可用性,在服务器同步分布式数据过程中,也可以被外界访问。
分区容错性就是单体项目变成分布式系统,还必须像之前一样正常运行。分布式必须满足分区容错性,保证系统的正常运行,CAP目前不能同时满足,因为同步数据是需要时间的,所以只能是CP或AP,根本原因为网路延时,zk满足CP。
CP的好处:
安全
AP的好处:
客户体验好
ZK是如何解决一致性的呢?
leader选举机制2N+1,最少三台服务器。
1.每一个zk都有一个zxid,zxid越大,代表当前机器的数据是最新的,选举首先按照这个来。
2.如果zxid都是一样的,比较服务器id,谁大谁是老大。
上一篇: C++ 一致性缓存的测试
下一篇: oracle查询锁参考