ZooKeeper

Zookeeper:一个用于分布式应用程序的分布式,开源的协调服务

ZooKeeper 公开了一组简单的原语,分布式应用程序可以基于这些原语来实现统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等

简单来说 ZooKeeper = 文件系统 + 监听通知机制

1.文件系统

ZooKeeper维护一个类似于文件系统的数据结构:


文件结构

每个子目录项如 NameService 都被称作 znode(目录节点),和文件系统一样,我们能够自由的增加、删除 znode,在一个 znode 下增加、删除子 znode,唯一的不同在于 znode 是可以储存数据的。

有四种类型的 znode:

  • PERSISTENT-持久化目录节点
    客户端与zookeeper断开连接后,该节点依旧存在
  • PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点
    客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号
  • EPHEMERAL-临时目录节点
    客户端与zookeeper断开连接后,该节点被删除
  • EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点
    客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号

2.监听通知机制

客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper 会通知客户端。

ZooKeeper单机模式配置安装

配置文件

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
  • tickTime:ZooKeeper使用的基本时间单位(毫秒)。它用于做心跳,并且最小会话超时将是tickTime的两倍
  • dataDir:存储内存数据库快照的位置,除非另有说明,否则存储数据库更新的事务日志。
  • clientPort:用于监听客户端连接的端口

简单操作

启动命令:zkServer.sh start
命令行连接:zkCli.sh

  1. 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容 ls \
  2. 创建一个新的 znode ,使用 create /zkPro myData
  3. 使用 get 命令来查看上面创建的znode中是否存在对应的数据 get /zkPro
  4. 使用 set 命令来对zk索关联的字符串进行设置:set /zkPro myData123
  5. 删除znode:delete /zkPro

分布式搭建

三台机器
配置文件

server.1=xxx.xxx.xxx.xxx:2888:3888
server.2=xxx.xxx.xxx.xxx:2888:3888
server.3=xxx.xxx.xxx.xxx:2888:3888

添加如下配置,启动即可,需要在data路径下添加 myid 文件配置id

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 分布式服务框架 Zookeeper Zookeeper名字的由来是比较有趣的,下面的片段摘抄自《从PAXOS到ZO...
    史路比阅读 1,419评论 0 6
  • 序言   Apache ZooKeeper是由集群(节点组)使用的一种服务,用于在自身之间协调,并通过稳健的同步技...
    抄无止境阅读 1,055评论 0 1
  • zookeeper介绍 什么是zookeeper? zookpeeper是一个高可用的分布式管理与协调框架,基于Z...
    程序员小宝阅读 810评论 0 3
  • 一、什么是Zookeeper Zookeeper最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内...
    DengheLiu阅读 1,323评论 0 1
  • 没有读书的习惯,该丰富一下自己了,脑袋里多装点知识。应该多读几本书的,但是不知道自己能如何坚持,先记个鬼谷子,墨菲...
    爱笑的四叶草阅读 203评论 0 0