zookeeper集群搭建以及常用命令

发布时间 2023-07-07 16:59:19作者: yangxiaohui227

一集群搭建:本次使用docker-compose.yml来搭建三个节点的zookeeper

1. 如果linux没安装docker-compose:

    

  1.curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

  2. chmod +x /usr/local/bin/docker-compose

  3. docker-compose --version

2.编写docker-compose.yml文件:

version: '3'
services:
  zoo1:
    image: zookeeper
    restart: always
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
  zoo2:
    image: zookeeper
    restart: always
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
  zoo3:
    image: zookeeper
    restart: always
    ports:
      - 2184:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

3. 执行 docker-compose up -d 命令,等待安装完即可

 二:zookeeper常用命令:

1. 登录其中一个节点使用命令: docker exec -it 容器Id /bin/bash

2. 进入容器后,cd bin进入到bin目录,然后执行 zkCli.sh -server 127.0.0.1:2181 连接上zookeeper客户端

 3. 使用命令 ls -R /  查询当前zookeeper的目录:

 4. 创建一个永久节点: create  目录   数据        如: create  /order "ddddd"    重复执行该命令会报错

 5. 获取节点的数据: get 目录 如: get  /order

 6. 创建一个永久顺序节点: create -s 目录 数据  如: create  -s /order/dto "6666"     执行2次该命令,就多了2条数据

 7. 创建临时节点: create -e 目录 数据: 如 create -e /order/temp "ddd"   重复执行该命令会报错

8. 创建临时顺序节点: create -es 目录 数据  如:create -es /order /temp2  "ccc"  执行2次会多2条数据

 临时节点:当你退出客户端连接时,再次进来,临时节点就不存在了

9:退出客户端并且再次连接: 使用:quit命令退出客户端,然后再用命令zkCli.sh -server 127.0.0.1:2181 进行连接客户端:此时使用 ls -R /order观察临时节点是否还存在

 10. 给目录增加一次监控: ls -w 目录  如:ls -w /order 当/order节点发生改变时,如增加子节点,删除子节点会得到通知,当如果是改数据的话就不会得到通知

 11. 对路径增加永久监控:命令:addWatch -m PERSISTENT 目录  如 addWatch -m PERSISTENT /order  对order目录的修改会触发监控,但对/order下的子节点修改不会触发监控,如

create /order/order/dto0000000000/kk "aa" 不会触发监控,如果要子路径修改也触发监控,使用命令 addWatch -m PERSISTENT_RECURSIVE  目录  如: addWatch -m PERSISTENT_RECURSIVE /order 

12. 删除节点:delete 目录 如 delete /order,只能删除最后一级的目录,如果有子目录会报错,如果要删除包含子目录的节点,使用命令 deleteall 目录 如:deleteall /order

 13. 设置节点的值: set 目录 值: 如 set /order  "ddd"

 14. 查询集群的配置: config -c | -w |-s

 15. 查询历史执行的命令 history

 16. 重复执行历史的某个命令 redo +上面查询到的序号