美文网首页
Zookeeper简介

Zookeeper简介

作者: endlesswork | 来源:发表于2019-10-14 19:23 被阅读0次

一、Zookeeper数据模型

Zookeeper的数据模型为层次模型(data tree),也被称为树形模型。
在层次模型上每个节点被称为znode。结构如下(图片来源百度)


image.png

图中 每个数据节点都是个znode
我们可以通过zkCli来验证下


image.png

Znode

znode在每个层级会保持唯一性,也就意味着在 /app1下面不可能存在2个c1


image.png

znode根据有效性来区分可以分为永久数据节点和临时数据节点

  • 永久数据节点
    除非我们主动删除这个数据节点,否则这个节点一直存在于zookeeper中我们上面构建的 /app1、/app2、/app3、/app1/c1、/app1/c2、/app2/c1就属于永久数据节点。
  • 临时数据节点
    临时数据节点只在我们客户端有效连接zookeeper时有效,并且临时数据节点下面不能有子节点,在这里我们通过windows下客户端工具zkCli.cmd简单看下(create -e 代表创建临时节点),可以看到无法在/app4下面创建节点


    image.png

    我们断掉这个客户端再次重新连接下,可以看到临时数据节点/app4消失


    image.png
    znode根据顺序性可以分为有序数据节点和无序数据节点这里我们主要看下永久顺序数据节点和临时顺序数据节点。
  • 永久顺序数据节点


    image.png
  • 临时顺序数据节点


    image.png

二、Watch机制

zookeeper可以对数据节点进行监控,当数据节点发生变化会通知客户端,
这里我们看一下
我们启用2个zookeeper链接
我们先在客户端1进行临时数据节点创建


image.png

因为我们已经创建了/app7所以我们不能再次创建,我们在客户端2对/app7进行监听


image.png
我们再在客户端1进行临时数据节点/app7删除
image.png
这时我们客户端2会收到一条watch信息,我们也可以再次创建临时数据节点/app7
image.png

相关文章

网友评论

      本文标题:Zookeeper简介

      本文链接:https://www.haomeiwen.com/subject/ewttuctx.html