ZooKeeper Services
客户端:客户端是我们分布式应用程序集群中的节点之一,可从服务器访问信息。 在特定的时间间隔内,每个客户端都会向服务器发送一条消息,以使服务器知道该客户端还活着。
同样,当客户端连接时,服务器发送确认。 如果连接的服务器没有响应,则客户端会自动将消息重定向到另一台服务器。
Zookeeper Ensemble:zookeeper多节点集群中的一组节点
服务器:是zookeeper Ensemble里的一个节点
Leader:在zookeeper Ensemble 中,所有服务器都参加内部投票并选择一个leader。leader负责自动恢复,如果任何服务器在 Ensemble 中失败。则leader处理该情况
Follower:在zookeeper Ensemble 中所有其他leader的服务器都称为follower
znode or data register(数据寄存器): 每一个znode或数据寄存器都包含两件事:
1.Data:所有的用户端使用这个数据去实行协调任务
2.path:通过使用该路径,客户端可以使用他们
zk data model:
data length:我们可以出储存在znode中的总数据
最大数据:1MB
version number:每一个znode都包含版本号。znode上的第一个数据将具有0版本。当我们更改数据时,它将更改为1版本
时间戳:它包含znode创建和修改的时间
Action Control List(ACL)----ACL基本上是用于访问znode的身份验证机制。它控制所有znode的读取和写入操作
znode的类型:
1.Persistance nodes(持久性节点):一旦创建。他们将一直存在,直到客户端明确删除他们。持久性znode-即使断开了创建该特定znode的客户端的连接,持久性znode仍然有效。 默认情况下,除非另有指定,否则所有znode都是持久性的
create /x tom---------->/x 是一个持久性节点
Ephemeral znode
临时znode-临时znode处于活动状态,直到客户端处于活动状态。 当客户端与ZooKeeper集成断开连接时,临时znode会自动删除。 因此,仅短暂的znode不允许再有孩子。 如果删除了临时znode,则下一个合适的节点将填充其位置。 临时znode在Leader选举中起着重要作用。
eg.
create -e /x tom
Sequential znode (顺序znode)
顺序节点有两种:
1.persistance -equential
eg.
create -s /m tom
2.Ephemeral-sequential
eg.
create -s -e /n amy
子节点:
create -s -e /x/y tom
以是持久性的,也可以是短暂的。 当创建一个新的znode作为顺序的znode时,ZooKeeper会通过在原始名称上附加一个10位的序列号来设置znode的路径。 例如,如果将路径为/ myapp的znode创建为顺序的znode,则ZooKeeper会将路径更改为/ myapp0000000001并将下一个序列号设置为0000000002。如果同时创建了两个顺序的znode,则ZooKeeper永远不会使用相同的编号 每个znode。 顺序znode在锁定和同步中起重要作用。