jck28 - 小柒 - zookeeper简介

一,zookeeper介绍

  • zookeeper是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。
  • Zookeeper特点:顺序一致性、原子性、单一映像、可靠性。

image

二,ZK数据模型

  • Zookeeper维护一个类似文件系统的数据结构,如图所示。
  • 每个子目录项如NameService都被称作为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。

image
image

三,ZK节点类型

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

四,常用命令和参数说明

zk登录

  • 机器:ip地址,登录名: admin 密码:adminxxx
  • cd bin
  • zkCli.sh -server 10.177.67.201:2181

查看 dubbo provider是否已经注册到zk:

  • ls /dubbo/com.oppo.os.ads.show.cpd.service.IMixCpdListSvc/providers
  • 查看path下的节点: ls /ors-sdk/prod/search/recommend/sdk/hosts

查看服务注册配置信息

新建节点

  • create /ors-sdk/prod/search/recommend/sdk/hosts/10.177.102.21:48825 10.177.102.21:48825

  • 创建临时节点:create [-s] [-e] path data acl

    • -s和-e分别指定节点特性:顺序或临时节点,默认情况下,不添加-s或-e参数的,创建的是持久节点
    • acl:用来进行权限控制,缺省情况下,不做任何权限控制
      • path:节点路径
      • data:节点保存的数据例子

查看节点

  • get /FUXI/DATA_TYPE/cpd-app-down/sdk

删除节点

  • rmr /okeeper/BaiduRecall/10.177.253.76:8999
  • delete /okeeper/BaiduRecall/10.177.253.76:8999 --没有子节点可使用delete