Zookeeper
一共32篇文章
专题:第22期
-
Zookeeper 的工作原理是什么
参考答案 Zookeeper 的核心是原子广播,这个机制保证了各个 server 之间的同步。实现这个机制的协议叫做 Zab 协议。Zab 协议的两种模式分别是恢复模式、广播模式。 当服务启动或者在领导者崩溃后, Zab 就进入了恢复模式,当领导者被选举出来,且大多数 server 的完成了和 leader 的状态同步以后,恢复模式就结束了。 状态同步保证了 leader 和 server 具有相…...- 宝妹儿
- 185
- 0
-
Zookeeper的投票机制实现是怎样实现的
参考答案 Zookeeper的投票机制实现: 每个 sever 首先给自己投票, 然后用自己的选票和其他 sever 选票对比,权重大的胜出,使用权重较大的更新自身选票箱。 选举过程: 每个 Server 启动以后都询问其它的 Server 它要投票给谁。对于其他 server 的询问,server 每次根据自己的状态都回复自己推荐的 leader 的 id 和上一次处理事务的zxid(系统启动时…...- 宝妹儿
- 77
- 0
-
Zookeeper 队列管理
参考答案 1. 同步队列 当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。 在约定目录下创建临时目录节点,监听节点数目是否是我们要求的数目。 2. 队列按照 FIFO 方式进行入队和出队操作。 入列有编号,出列按编号,和分布式锁服务中的控制时序场景的基本原理一致。 在特定的目录下创建 PERSISTENT_SEQUENTIAL 节点,创建成功时Watcher 通知等待的…...- 宝妹儿
- 106
- 0
-
Zookeeper 分布式锁
参考答案 Zookeeper 的一致性文件系统,让锁的问题变得容易。 锁服务可以分为两类: 1. 保持独占 将 Zookeeper 上的一个 znode 看作是一把锁,通过 createznode的方式来实现。 所有客户端都去创建 /distribute_lock 节点,最终成功创建的那个客户端也即拥有了这把锁。 用完之后,删除掉自己创建的 distribute_lock 节点,就释放出锁。 2…...- 宝妹儿
- 58
- 0
-
Zookeeper 集群管理是什么
参考答案 集群管理主要指两点:是否有机器退出和加入、选举 master。 1. 是否有机器退出和加入 所有机器约定在父目录下创建临时目录节点,然后监听父目录节点的子节点变化消息。 一旦有机器挂掉,该机器与 zookeeper 的连接断开,其所创建的临时目录节点被删除,所有其他机器都收到通知:某个兄弟目录被删除,于是,所有人都知道:它上船了。 新机器加入也是类似,所有机器收到通知:新兄弟目录加入,…...- 宝妹儿
- 70
- 0
-
数据发布/订阅是什么
参考答案 数据发布/订阅系统,即所谓的配置中心,就是发布者发布数据,供订阅者进行数据订阅。 1. 数据发布/订阅的目的 动态获取数据(配置信息); 实现数据(配置信息)的集中式管理和数据的动态更新。 2. 设计模式 Push 模式; Pull 模式。 3. 数据(配置信息)特性 数据量通常比较小; 数据内容在运行时会发生动态更新; 集群中各机器共享,配置一致。例如:机器列表信息、运行时开关…...- 宝妹儿
- 47
- 0
-
Zookeeper 的典型应用场景
参考答案 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机制,可以非常方便的构建一系列分布式应用中年都会涉及的核心功能。 例如: 数据发布/订阅; 负载均衡; 命名服务; 分布式协调/通知; 集群管理; Master 选举; 分布式锁…...- 宝妹儿
- 8
- 0
-
ZAB 和 Paxos 算法的联系与区别
参考答案 ZAB 和 Paxos 算法的相同点: 两者都存在一个类似于 Leader 进程的角色 ,由其负责协调多个 Follower 进程的运行。 Leader 进程都会等待超过半数的 Follower 做出正确的反馈后 ,才会将一个提案进行提交。 ZAB 协议中, 每个 Proposal 中都包含一个 epoch 值来代表当前的 Leader周期 ,Paxos 中名字为 Ballot。 ZAB…...- 宝妹儿
- 15
- 0
-
Zookeeper 对节点的 watch监听通知是永久的吗,为什么
参考答案 Zookeeper 对节点的 watch 监听通知不是永久的。一个 Watch 事件是一个一次性的触发器,当被设置了 Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了 Watch 的客户端,以便通知它们。 举例说明: 如果服务端变动频繁,而监听的客户端很多情况下,每次变动都要通知到所有的客户端,给网络和服务器造成很大压力。 一般是客户端执行getData(“/节点 A”,…...- 宝妹儿
- 116
- 0
-
集群支持动态添加机器吗
参考答案 3.5版本开始支持动态扩容。 两种方式实现: 全部重启:关闭所有 Zookeeper 服务,修改配置之后启动。不影响之前客户端的会话。 逐个重启:在过半存活即可用的原则下,一台机器重启不影响整个集群对外提供服务。这是比较常用的方式。 以上,是Zookeeper面试题【集群支持动态添加机器吗】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end…...- 宝妹儿
- 10
- 0
-
Zookeeper 有哪几种部署模式
参考答案 Zookeeper的部署模式,有以下几种: 单机模式 伪集群模式 集群模式 以上,是Zookeeper面试题【Zookeeper 有哪几种部署模式】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---...- 宝妹儿
- 34
- 0
-
分布式集群中为什么会有 Master
参考答案 分布式集群中有 Master的原因: 在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机器可以共享这个结果,这样可以大大减少重复计算,提高性能,于是就需要进行leader 选举。 以上,是Zookeeper面试题【分布式集群中为什么会有 Master】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---...- 宝妹儿
- 7
- 0