ZooKeeper常见题型讲解

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: ZooKeeper常见题型讲解

目录

ZooKeeper常见题

18. zk节点宕机如何处理?

19. zookeeper负载均衡和 nginx负载均衡区别

20. Zookeeper有哪几种几种部署模式?

21.集群最少要几台机器,集群规则是怎样的?

22.集群支持动态添加机器吗?

23. Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?


ZooKeeper面试题

18. zk节点宕机如何处理?

Zookeeper本身也是集群,推荐配置不少于 3个服务器。Zookeeper自身也要保证当一个节点宕机时,其他节点会继续提供服务。

如果是一个 Follower宕机,还有 2台服务器提供访问,因为 Zookeeper上的数据是有多个副本的,数据并不会丢失;

如果是一个 Leader宕机,Zookeeper会选举出新的 Leader。

ZK集群的机制是只要超过半数的节点正常,集群就能正常提供服务。只有在 ZK节点挂得太多,只剩一半或不到一半节点能工作,集群才失效。

所以

3个节点的 cluster可以挂掉 1个节点(leader可以得到 2票>1.5)

2个节点的 cluster就不能挂掉任何 1个节点了(leader可以得到 1票

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事件,就不再给客户端发送。

在实际应用中,很多情况下,我们的客户端不需要知道服务端的每一次变动,我只要最新的数据即可。


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
30天前
|
前端开发 Java 开发者
【zookeeper 第一篇章】认识一下 zookeeper
Spring框架是为Java应用程序提供全面支持的平台,帮助开发者解决基础问题,专注于业务逻辑。它具备IOC(控制反转)和AOP(面向切面编程)等功能,提供MVC架构支持、事务管理和JDBC异常处理等。Spring的核心是IOC容器,通过依赖注入管理组件。依赖注入包括构造函数、setter及接口注入等方式。IOC的优点在于减少代码量,促进松耦合。
25 0
|
存储 负载均衡 Dubbo
Zookeeper的常见面试题(全)
目录前言1. Zookeeper的了解2. ZAB协议 / 主从节点的同步了解3. 多少种部署方式4. 通知机制5. 集群节点的个数6. 节点的类型有什么7. 集群安装的特点8. 选举机制是如何的 前言 主要理顺zookeeper的相关知识点以及面试常被问及的知识点 基础知识可看我之前的文章 Zookeeper从入门到精通(全) 1. Zookeeper的了解 zookeeper主要是文件系统(存储数据)和通知机制(进行通知信息) 它是一个为分布式应用提供一致性服务的软件 具体都有哪些些功能 统一命名服务
277 1
Zookeeper的常见面试题(全)
|
存储 缓存 负载均衡
ZooKeeper面试题
zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是ip地址和服务名称的对应关系。当然也可以通过硬编码的方式把这种对应关系在调用方业务代码中实现,但是如果提供服务的机器挂掉调用者无法知晓,如果不更改代码会继续请求挂掉的机器提供服务。zookeeper通过心跳机制可以检测挂掉的机器并将挂掉机器的ip和服务对应关系从列表中删除。至于支持高并发,简单来说就是横向扩展,在不更改代码的情况通过添加机器来提高运算能力。通过添加新的机器向zookeeper注册服务,服务的提供者多了能服务的客户就多了。
ZooKeeper面试题
|
存储 消息中间件 负载均衡
28. ZooKeeper面试那些事儿
28. ZooKeeper面试那些事儿
102 0
28. ZooKeeper面试那些事儿
|
负载均衡
关于ZooKeeper的一些面试题
关于ZooKeeper的一些面试题
|
存储 消息中间件 负载均衡
zookeeper面试题库
ZooKeeper 是一个 分布式 的,开放源码的分布式 应用程序协调服务 ,是 Google 的 Chubby 一个开源的实现,它是 集群的管理者 , 监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作 。
123 0
|
存储 消息中间件 设计模式
10道不得不会的 Zookeeper 面试题
10道不得不会的 Zookeeper 面试题。 低谷蓄力
169 0
10道不得不会的 Zookeeper 面试题
|
缓存 API Apache
小六六学Zookeeper(三)(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
163 0
|
存储 设计模式 算法
小六六学Zookeeper(一)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
150 0