想了解ZooKeeper,看这篇就够了

2022-03-22  本文已影响0人  MobotStone
一、ZooKeeper是什么

ZooKeeper是一个集群管理者,监视集群中节点的状态,并根据状态进行下一步操作

ZooKeeper读请求是全局开放的,集群中的任意一台机器都可以处理,读请求在节点上注册监听器时,这个监听器的请是由链接的ZooKeeper机器处理

写请求会发给其他ZooKeeper机器,达成一致后,请求才返回

ZooKeeper机器越多,读请求吞吐量会提高但写请求会下降。

每个更新都有全局有序的,都唯一的时间戳(zxid)。读请求智慧相对于更新有序,每次读请求都会带有zxid。

二、ZooKeeper能提供什么

三、ZooKeeper能做什么:

第一类,在约定目录下创建临时目录节点,监听节点数目是否是我们要求的数目。

第二类,和分布式锁服务中的控制时序场景基本原理一致,入列有编号,出列按编号。在特定的目录下创建PERSISTENT_SEQUENTIAL节点,创建成功时Watcher通知等待的队列,队列删除序列号最小的节点用以消费。此场景下Zookeeper的znode用于消息存储,znode存储的数据就是消息队列中的消息内容,SEQUENTIAL序列号就是消息的编号,按序取出即可。由于创建的节点是持久化的,所以不必担心队列消息的丢失问题。

四、数据复制

Zookeeper作为一个集群提供一致的数据服务,自然,它要在所有机器间做数据复制。数据复制的好处:

从客户端读写访问的透明度来看,数据复制集群系统分下面两种:

对zookeeper来说,它采用的方式是写任意。通过增加机器,它的读吞吐能力和响应能力扩展性非常好,而写,随着机器的增多吞吐能力肯定下降(这也是它建立observer的原因),而响应能力则取决于具体实现方式,是延迟复制保持最终一致性,还是立即复制快速响应。

五、工作原理

Zookeeper 的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和 leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Server具有相同的系统状态。

上一篇下一篇

猜你喜欢

热点阅读