• 记ZooKeeper3.7在win下的单机部署


    一、背景

    ZooKeeper 是作为集群使用的工具。所谓分布式协调主要是来解决分布式系统中多个进程之间的同步限制,防止出现脏读,例如我们常说的分布式锁。
    其官网是:https://zookeeper.apache.org/
    我这里使用的环境是
    win server 2012r2 x64
    ZooKeeper 3.7.0
    JDK 8
    ----------Zookeeper集群搭建需要最少3台机器,单机3个应用

    二、安装部署

    1. 因为 ZooKeeper 依赖 Java 环境运行,所以首先需要下载、安装和配置 JDK。
    2.  需要关闭防火墙。通过控制面板--》系统与安全--》Windows防火墙--》启动或关闭Windows防火墙
      
      • 1
    3. 下载 ZooKeeper stable 版本,本示例使用 3.70 版本,下载文件是 apache-zookeeper-3.7.0-bin.tar ,下载后解压,复制文件夹成3个文件夹
      D:\ZooKeeper1
      D:\ZooKeeper2
      D:\ZooKeeper3

    我这里使用单机部署,所以要复制出3个 ZooKeeper文件夹内容一样。下面配置

    新建文件夹 D:/zookeeper1/date
    
    • 1

    找到
    D:\zookeeper1\conf
    复制 zoo_sample.cfg 文件并粘贴在同一目录下,将文件名称修改为 zoo.cfg

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=D:/zookeeper1/date
    dataLogDir=D:/zookeeper1/log
    # the port at which the clients will connect
    admin.serverPort=9090
    # clientPort=2181
    quorumListenOnAllIPs=true
    server.1=10.202.80.180:2888:3888;2181
    server.2=10.202.80.181:2888:3888;2181
    server.3=10.202.80.182:2888:3888;2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    说明:
    1.	添加dataDir地址:指定Zookeeper 保存数据的目录
    2.	添加dataLogDir地址:指定事务日志存储路径,不加默认在dataDir目录下
    3.	设置clientPort端口,默认为2181,3.7以后的版本注释掉该项,在集群地址中配置clinetport端口,使用容器
    4.	设置admin.serverPort启动端口,启动端口默认为8080,不修改容易造成端口冲突
    5.	quorumListenOnAllIPs=true  #必须添加,防止本机IP 不是本机网卡
    6.	设置集群地址:
    server.1=10.202.80.180:2888:3888;2181	--第一个节点地址
    server.2=10.202.80.181:2888:3888;2181	--第二个节点地址
    server.3=10.202.80.182:2888:3888;2181	--第三个节点地址	
    说明:
    server.A=B:C:D;E   A是一个数字,表示这个是第几号服务器由myid文件选择;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口,E为clientPort端口
    7.	创建多个节点集群时,在dataDir=D:\ZooKeeper1\date目录下必须创建myid文件,myid文件用于zookeeper验证server序号,myid文件只有一行,并且为当前server的序号。
    Server为1,myid记录1
    D:\ZooKeeper2\date 里面的myid 2
    D:\ZooKeeper3\date 里面的myid 3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    运行

    进入…\zookeeper1\bin目录
    在这里插入图片描述
    双击ZkServer.cmd启动服务脚本,启动顺序:server.1>server.2>server.3

    若脚本启动报错:JAVA_HOME is not set
    则修改启动cmd内容加入JAVA环境变量
    在这里插入图片描述
    也可在系统环境变量里面配置JAVA_HOME
    cmd 输入 echo %JAVA_HOME%
    就可以看到配置java的目录。
    3个server启动后,可以使用客户端连接试试
    使用客户端连接集群:
    命令:

    zkCli.cmd -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
    
    • 1

    成功连接截图
    在这里插入图片描述

    ZooKeeper的使用

    在这里插入图片描述

    查看集群情况

    单节点连接。
    #登录node3节点

    bin/zkCli.sh -server 127.0.0.1:2183
    
    • 1

    或者#登录node1节点

    bin/zkCli.sh -server 127.0.0.1:2181
    
    • 1

    对于集群测试,还可以在node1上新建目录,然后在node3上检查是否存在该目录
    cmd 命令里面:

    ....] create /test
    ..../bin/zkCli.sh -server 127.0.0.1:2183
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    【金融项目】尚融宝项目(十一)
    数组some和every的区别
    玩转ansys——微机械车轮的实体建模与网格化
    Q-Learning笔记
    Spring AI 第二讲 之 Chat Model API 第三节Azure OpenAI Chat
    [附源码]java毕业设计基于JAVAWEB的高校实训管理系统
    使用axis调用WebService,Java WebService调用工具类
    氨基酸代谢:从基础到应用,揭示其在健康与疾病的角色
    计算机毕业设计Java高校教师工作量管理系统(源码+系统+mysql数据库+lw文档)
    ROI tracking by using OpenCV
  • 原文地址:https://blog.csdn.net/jhui123456/article/details/127818250