一、Zookeeper 介绍

Zookeeper是一个分布式应用程序协调服务,主要负责集中维护配置信息的服务,提供分布式的同步机制。其所有的服务都是做为其他分布式应用的基础。Zookeeper是Google Chubby的一个开源实现,是现在很多分布式应用的重要组件,包括诸如Hadoop、HBase、Kafka等,可以说现在Zookeeper是大家必须掌握的一门软件。

二、Zookeeper主要提供以下几种服务

  1. 命名服务
  2. 配置管理
  3. 集群管理
  4. 分布式锁
  5. 队列管理

三、Zookeeper的特点

  1. 简单:Zookeeper的核心是一个精简的文件系统,它支持一些简单的操作和一些抽象操作,例如,排序和通知。
  2. 丰富:Zookeeper的原语操作是很丰富的,可实现一些协调数据结构和协议。例如,分布式队列、分布式锁和一组同级别节点中的“领导者选举”。
  3. 高可用:Zookeeper支持集群模式,可以很容易的解决单点故障问题。
  4. 松耦合式交互:不同进程间的交互不需要了解彼此,甚至可以不必同时存在,某进程在zookeeper中留下消息后,该进程结束后其它进程还可以读这条消息。
  5. 资源库:Zookeeper实现了一个关于通用协调模式的开源共享存储库,能使开发者免于编写这类通用协议。

四、Zookeeper的Docker安装

1. docker search zookeeper
2. docker pull zookeeper
3. docker run -e TZ=“Asia/Shanghai” -d -p 2181:2181 --name zookeeper zookeeper:latest
4. docker ps 5、docker exec -it zookeeper sh

五、Zookeeper的相关命令

  1. 查看所有目录,以列表形式返回:ls [path]
  2. 创建节点,注意要给节点数据,否则创建不成功,创建不成功无返回值,创建成功返回被创建的目录(节点即目录):
  • 2.1创建永久节点:create /test test
  • 2.2创建临时节点,断开连接即自动销毁:create -e /test2
  • 2.3创建有序节点:create -s /test3
    注:有序节点和普通节点的区别:创建普通节点时,如果想创建的节点名已经存在,则不允许创建,而创建有序节点时,会自动在节点名称后面加入编号
  1. 得到节点的数据,这里除了数据还会输出一系列状态信息:get /test
  2. 对节点数据进行更新:set /test
  3. 删除节点,注意这里无论要删除的节点下是否有其他节点和数据,都会全部删除:rmr /test
  4. 删除节点,注意这里当要删除的节点非空时,会组织删除:delete /test