Zookeeper服务的使用

1.简介
应用通常使用的是zookeeper 客户端的服务。 zookeeper 客户端负责和zookeeper 服务端进行交互。

2.数据模型
Zookeeper 的数据模型是层次模型。 层次模型常见于文件系统. Zookeeper 使用文件系统模型主要基于以下两点考虑。

  1. 文件系统的树形结构便于表达数据之间的层次关系。
  2. 文件系统的属性结构便于为不同的应用分配独立的命名空间
    Zookeeper的层次模型称为 data tree. Data tree 的每个节点叫做 znode. 不同于文件系统, 每个节点都能保存数据。每个节点都有一个版本,版本的序号从零开始。

3. data tree 接口
Zookeeper 对外提供一个用来访问data tree 的简化文件系统API。

  • 使用UNIX 风格的路径来定位znode, 例如/A/X 表示znodeA 的子节点X.
  • znode 的数据只支持全量写入和读取,没有像通用文件系统那样支持部分写入和读取。
  • data tree 的所有API 都是 wait-free 的。 正在执行中的API调用不会影响其他API的完成
  • data tree 的API 都是对文件系统的wait-free 操作,不直接提供锁这样的分布式协同机制, 但是data tree 的API 非常强大, 可以用来实现多种分布式协同机制。

4. znode 分类
一个znode 可以是持久性的也可以是临时性的:

  1. 持久性的znode: 这样的znode 在创建之后即使发生zookeeper 集群宕机或者client宕机也不会丢失。
  2. 临时性的znode: client 宕机或者client 在指定的timeout 时间内没有给zookeeper 集群发送消息, 这样的znode 就会消失。

znode 也可以是顺序性的 每一个 顺序性的znode 关联一个唯一一个 的单调递增整数。 这个单调递增整数是znode 名字后缀。如果上面两种znode 具备顺序性,又有一下两种znode:

  1. 持久顺序性的znode : znode 除了具备持久性的znode 的特点之外 znode 的名字应该具备顺序性。
  2. 临时顺序性的znode: znode 除了具备临时性znode 的特点之外, znode 的名字具备顺序性。
发布了213 篇原创文章 · 获赞 35 · 访问量 85万+

猜你喜欢

转载自blog.csdn.net/u012957549/article/details/104582210
今日推荐