• zookeeper 3.8.1安装和入门使用


    1、zookeeper环境搭建(Windows单机版)

    1.1、 前提

    必须安装jdk 1.8配置jdk环境变量步骤略

    1.2、安装zookeeper

    地址:https://zookeeper.apache.org/

    1.2.1、选择releases版本

    1.2.2、下载安装包并解压

    1.2.3、配置data位置 复制 zoo_sample.cfg文件改名为zoo.cfg,修改dataDir位置

    1.3、使用

    1.3.1、开启服务端

    1.3.2、开启客户端

    服务端启动成功显示

    客服端启动成功显示

    2、zookeeper使用

    2.1、帮助命令: help

    1. help(查看所有zk命令)
    2. ls 查看命令
    3. ls -R /quota_test
    4. 显示
    5. # /quota_test
    6. # /quota_test/child_1
    7. # /quota_test/child_2
    8. /quota_test/child_3
    9. ls -s /quota_test
    10. 显示
    11. # [child_1, child_2, child_3]
    12. # cZxid = 0x110000002d
    13. # ctime = Thu Mar 07 11:19:07 UTC 2019
    14. # mtime = Thu Mar 07 11:19:07 UTC 2019
    15. # pZxid = 0x1100000033
    16. # cversion = 3
    17. # dataVersion = 0
    18. # aclVersion = 0
    19. # ephemeralOwner = 0x0
    20. # dataLength = 0
    21. # numChildren = 3
    22. ls -w /brokers 为brokers节点添加监视器,当brokers添加或删除子节点时会提示
    23. # WATCHER::
    24. #WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/app2

    2.2、创建节点

    1. create [-s] [-e] [-c] [-t ttl] path [data] [acl]
    2. [-s] 自动添加序号(自增)
    3. [-e] 表示为零时节点
    4. [-c] 创建容器节点
    5. [-t ttl] 创建ttl节点,可以指定超时时间,3.6.0之后版本出现
    6. path 节点路径名 根目录为/,每个/代表一层 最后一个/后的内容为当前创建的节点名,若节点名前几层的节点不存在时当前节点创建时会报错,不会自动创建
    7. [data] 节点数据 "data" 和path类似与 Key:value
    8. [acl] 节点访问权限

    2.3、节点类型

    普通永久节点

    create /app1 "hello zk" 创建普通永久节点app1 value为 hello zk

    带序号永久节点

    create -s /app2 "hello zk"创建带序号永久节点app1 value为 hello zk

    普通临时节点

    create -e /app3 "hello zk"创建普通临时节点app3 value为 hello zk 临时节点当客户端关闭时会被删除

    带序号临时节点

    create -e -s /app4 "hello zk"创建普通临时节点app4 value为 hello zk  临时节点当客户端关闭时会被删除

    创建容器节点

     create -c /container_node mydata 当容器结点的最后一个子节点被删除时容器节点就会被删除

    创建ttl节点

    1. #注意 先在zoo.cfg加入extendedTypesEnabled=true配置,否则会报 KeeperErrorCode = Unimplemented for /ttl_node 错误
    2. create -t 1000 /app1 "hello" 创建一个1000ms过时的节点app1 data为hello

    创建acl节点

    详见 https://blog.csdn.net/yangshangwei/article/details/109759787
    

    2.4、获取节点值

    1. get [-s] [-w] path
    2. [-s] 查看节点详细信息
    3. [-w] 为path设置监听器,当data改变时提醒
    4. get -s /app1 或者 stat /app1
    5. #前者会多显示一条节点值
    6. # ­­­­­­­­­­­节点的状态信息,也称为stat结构体­­­­­­­­­­­­­­­­­­­
    7. # 创建该znode的事务的zxid(ZooKeeper Transaction ID)
    8. # 事务ID是ZooKeeper为每次更新操作/事务操作分配一个全局唯一的id,表示zxid,值越小,表示越先执行
    9. cZxid = 0x4454 # 0x0表示十六进制数0
    10. ctime = Thu Jan 01 08:00:00 CST 1970 # 创建时间
    11. mZxid = 0x4454 # 最后一次更新的zxid
    12. mtime = Thu Jan 01 08:00:00 CST 1970 # 最后一次更新的时间
    13. pZxid = 0x4454 # 最后更新的子节点的zxid
    14. cversion = 5 # 子节点的变化号,表示子节点被修改的次数
    15. dataVersion = 0 # 当前节点的变化号,0表示从未被修改过
    16. aclVersion = 0 # 访问控制列表的变化号 access control list
    17. # 如果临时节点,表示当前节点的拥有者的sessionId
    18. ephemeralOwner = 0x0 # 如果不是临时节点,则值为0
    19. dataLength = 13 # 数据长度
    20. numChildren = 1 # 子节点数据
    21. get -w /app1 为app1添加监听器 当使用 set命令修改app1的值时zk监视器会提醒

    2.5、修改节点值

    set /app1  "hello set" 
    

    2.6、删除节点值

    1. delete pathpath存在子节点时无法删除
    2. deleteall path 递归删除path及其子节点
  • 相关阅读:
    MySQL数据库(一)
    js/axios/umi-request 根据后端返回的二进制流下载文件
    【图论算法】深度优先搜索的应用
    Kotlin第五弹:数据容器
    CSS - 浮动布局(float)
    Java框架(三)--Spring IoC容器与Bean管理(5)--bean scope属性及bean的生命周期
    CSS层级小技巧!如何在滚动时自动添加头部阴影?
    C++小游戏视频及资料集 C语言深度剖析等
    Pikachu-xxe (xml外部实体注入漏洞)过关笔记
    【ES6知识】ESModule 模块化
  • 原文地址:https://blog.csdn.net/weixin_52793468/article/details/132586660