Zookeeper高可用性Debian实现

991
2025/4/12 9:33:25
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian系统上实现Zookeeper的高可用性(HA)通常涉及以下几个步骤:

  1. 准备环境

    • 确保你有至少三台服务器,因为Zookeeper的HA模式需要奇数个节点来避免脑裂(split-brain)情况。
    • 所有服务器都应该安装Java环境,因为Zookeeper是用Java编写的。
  2. 下载并解压Zookeeper: 在每台服务器上执行以下命令来下载和解压Zookeeper:

    wget https://downloads.apache.org/zookeeper/zookeeper-3.x.x/apache-zookeeper-3.x.x-bin.tar.gz
    tar xzf apache-zookeeper-3.x.x-bin.tar.gz
    mv apache-zookeeper-3.x.x-bin /opt/zookeeper
    
  3. 配置Zookeeper: 在每台服务器的/opt/zookeeper/conf目录下,复制zoo_sample.cfg文件并重命名为zoo.cfg

    cp conf/zoo_sample.cfg conf/zoo.cfg
    

    编辑zoo.cfg文件,添加或修改以下配置:

    tickTime=2000
    dataDir=/var/lib/zookeeper
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=server1_ip:2888:3888
    server.2=server2_ip:2888:3888
    server.3=server3_ip:2888:3888
    

    其中server.1, server.2, server.3分别代表三台服务器的标识,server1_ip, server2_ip, server3_ip是它们的IP地址。

    dataDir指定的目录下创建一个名为myid的文件,用来标识当前服务器的ID:

    echo 1 > /var/lib/zookeeper/myid  # 在第一台服务器上执行
    echo 2 > /var/lib/zookeeper/myid  # 在第二台服务器上执行
    echo 3 > /var/lib/zookeeper/myid  # 在第三台服务器上执行
    
  4. 启动Zookeeper: 在每台服务器上,使用以下命令启动Zookeeper服务:

    /opt/zookeeper/bin/zkServer.sh start
    
  5. 验证集群状态: 在任意一台服务器上,使用以下命令检查Zookeeper集群的状态:

    /opt/zookeeper/bin/zkServer.sh status
    

    你应该能看到当前服务器的角色(Leader或Follower)以及集群的状态。

  6. 设置开机自启动(可选): 如果你想让Zookeeper在系统启动时自动运行,可以创建一个systemd服务文件:

    sudo nano /etc/systemd/system/zookeeper.service
    

    然后添加以下内容:

    [Unit]
    Description=Apache Zookeeper Server
    After=network.target
    
    [Service]
    Type=forking
    User=nobody
    Group=nogroup
    ExecStart=/opt/zookeeper/bin/zkServer.sh start
    ExecStop=/opt/zookeeper/bin/zkServer.sh stop
    Restart=on-abort
    
    [Install]
    WantedBy=multi-user.target
    

    保存并退出,然后启用并启动服务:

    sudo systemctl enable zookeeper
    sudo systemctl start zookeeper
    

确保所有服务器上的配置都正确无误,并且网络连接正常,这样你的Zookeeper集群就能正常工作并提供高可用性了。记得在生产环境中使用防火墙规则来限制对Zookeeper端口的访问。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Debian挂载NFS服务器技巧