【分布式】Zookeeper应用场景

Zookeeper应用场景

Zookeeper特性

Zookeeper 这种数据结构有如下这些特点:

  • 每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1
  • znode 可以有子节点目录,并且每个 znode 可以存储数据,注意 EPHEMERAL 类型的目录节点不能有子节点目录
  • znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据
  • znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了
  • znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2
  • znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的,后面在典型的应用场景中会有实例介绍。

上面说的稍微有点啰嗦,我提炼一下三大特点:

1.临时节点:

An ephemeral node will be automatically removed by ZooKeeper when the session associated with the creation of the node expires.

翻译过来就是:client创建了一个临时节点后,当client挂了或者自己断开连接,该节点就会消失。

2.顺序节点:

A sequential node will be given the specified path plus a suffix `i` where i is the current sequential number of the node. The sequence number is always fixed length of 10 digits,  0 padded. Once such a node is created, the sequential number will be incremented by one.

3.节点可监控:

参考

posted @ 2018-01-06 15:24  puyangsky  阅读(283)  评论(0编辑  收藏  举报