在之前的文章Zookeeper体系介绍中我们介绍了Zookeeper体系。因此,在深入了解ZooKeeper的工作之前,我们必须了解ZooKeeper中的一些术语。今天,在这篇Zookeeper文章中,我们将学习基本概念或简要的ZooKeeper术语,以进一步了解它的运行情况。
那么,下面就让我们来了解一下Apache ZooKeeper
术语。
下面,我们将讨论Apache ZooKeeper中的各种术语:
a. Sessions 在Zookeeper操作中,会话非常重要。基本上在会话中请求以FIFO顺序执行。但是,只要客户端连接到服务器,就会建立会话并将会话ID分配给客户端。
此外,为了保持会话有效,客户端以特定时间间隔发送心跳。有一种情况是,ZooKeeper集合决定客户端在没有从客户端接收超过一段时间的心跳时死亡,会话超时在服务启动时指定。
虽然,会话超时通常以毫秒为单位表示。此外,当会话因任何原因而结束时,在该会话期间创建的短暂znode也会被删除。
b.Watches Watches是一种简单的机制,客户端可以获得有关ZooKeeper集群中的更改的通知。在阅读特定的znode时,客户可以设置Watches。此外,对于任何znode(客户端注册)更改,watch会向注册客户端发送通知。
随着znode或Znode子集的变化,Znode变化是对数据的修改。然而,只有一次,Watch被触发。如果客户端想要再次通知,则必须通过另一个读取操作完成。客户端将与服务器断开连接,并且在连接会话到期时也会删除关联的监视。
c. ZNodes 在ZooKeeper树中,每个节点都是一个znode。基本上,它维持一个统计结构。统计结构是一种结构,其中包含数据更改,ACL更改等的版本号。因此,Znodes保持这些变化。统计结构也有时间戳。
版本号与时间戳一起允许ZooKeeper验证缓存并协调更新。随着znode数据的变化,版本号会增加。
例如,只要客户端检索数据,客户端就会收到数据的版本。但是,当客户端执行更新或删除时,它必须提供正在更改的Znode数据的版本。因此,如果更新提供的版本与实际版本的数据不匹配,则更新将失败。
d. 名称服务 将名称映射到与该名称关联的某些信息的服务就是我们所说的名称服务。此外,我们还可以将名称服务扩展为组成员服务。因为这样可以获得与该实体所在的组有关的信息,我们正在搜索其名称。
e. Locking 我们可能需要实现分布式互斥锁,以允许对我们的分布式系统中的共享资源进行序列化访问。因此,通过ZooKeeper,我们可以轻松实现它们。
f. 同步 基本上,为了同步对共享资源的访问,我们需要携带分布式互斥锁。但是,无论是实现生产者 - 消费者队列还是障碍,ZooKeeper都提供了一个简单的实现接口。
g. 配置管理 为了集中存储和管理我们的分布式系统的配置,我们可以使用ZooKeeper。
h. Leader选举 分布式系统可能必须处理节点发生故障的问题。此外,我们可能希望实施自动故障转移策略。对于这些类型的问题,ZooKeeper通过领导者选举提供现成的支持。
i. 使用ACL的ZooKeeper访问控制 为了控制对其Znodes(ZooKeeper数据树的数据节点)的访问,ZooKeeper使用ACL。