Zookeeper互联网大厂高频面试题—5
Posted 四猿外
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper互联网大厂高频面试题—5相关的知识,希望对你有一定的参考价值。
19. zookeeper 负载均衡和nginx 负载均衡区别
zk 的负载均衡是可以调控,nginx 只是能调权重,其他需要可控的都需要自己写插件;但是nginx 的吞吐量比zk 大很多, 应该说按业务选择用哪种方式。
20. Zookeeper 有哪几种几种部署模式?
部署模式:单机模式、伪集群模式、集群模式。
21. 集群最少要几台机器,集群规则是怎样的?
集群规则为2N+1 台, N>0,即3 台。
22. 集群支持动态添加机器吗?
其实就是水平扩容了, Zookeeper 在这方面不太好。两种方式:
全部重启:关闭所有Zookeeper 服务,修改配置之后启动。不影响之前客户端的会话。
逐个重启:在过半存活即可用的原则下, 一台机器重启不影响整个集群对外提供服务。这是比较常用的方式。
3.5 版本开始支持动态扩容。
23. Zookeeper 对节点的watch 监听通知是永久的吗?为什么不是永久的?
不是。官方声明:一个Watch 事件是一个一次性的触发器,当被设置了Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了Watch 的客户端,以便通知它们。
为什么不是永久的,举个例子,如果服务端变动频繁, 而监听的客户端很多情况下, 每次变动都要通知到所有的客户端, 给网络和服务器造成很大压力。
一般是客户端执行getData(“ /节点A” ,true),如果节点A 发生了变更或删除,客户端会得到它的watch 事件,但是在之后节点A 又发生了变更,而客户端又没有设置watch 事件,就不再给客户端发送。
在实际应用中,很多情况下,我们的客户端不需要知道服务端的每一次变动, 我只要最新的数据即可。
24. Zookeeper 的java 客户端都有哪些?
java 客户端: zk 自带的zkclient 及Apache 开源的Curator。
25. chubby 是什么,和zookeeper 比你怎么看?
chubby 是google 的, 完全实现paxos 算法,不开源。zookeeper 是chubby的开源实现,使用zab 协议,paxos 算法的变种。
以上是关于Zookeeper互联网大厂高频面试题—5的主要内容,如果未能解决你的问题,请参考以下文章