Zab系列4 zookeeper特性

特性

  • 类似于Raft系统,zookeeper也有 log 和 状态机的概念,zk中的状态机是一棵内存树。
  • zk写的顺序是 先写到日志中保存命令,再运用到内存树中,再返回客户端
  • zk的读操作不需要转发到leader,每个Node都可以直接返回本地内存树中的数据

一致性、容错性

  1. zk的读取是弱一致性+最终一致性的,任何Node(Follower、leader、observer)都可以直接处理客户端的Query请求,而不需要去leader那confirm自己的数据是最新的。这种机制提升了读取的性能,但是可能NodeA的数据不是最新的,客户端读取到的数据可能是过时的。

  2. ZK集群的容错性要考虑到observer的情况,因为observer节点并不参与事务请求的confirm和投票选举,所以说observer的宕机并不会影响集群的可用性。所以不能一概而论的说,zk集群半数节点不可用则集群不可用,要看挂掉的节点的角色是不是observer。

  3. ZK集群在新版本中支持配置:readonlymode.enable属性,默认是false,如果开启的话,节点处于异常状态,集群仍然可用,但是只能执行读的请求,不能写。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容