zoukankan      html  css  js  c++  java
  • zookeeper的集群搭建

    1.介绍

      使用集群的方式避免单点故障时目前分布式应用实现高可用的重要手段,ZooKeeper同样可以搭建集群环境。

    2.说明

      1)服务器名称与地址:

        集群信息(服务器编号,服务器地址,LF通信端口,选举端口);

        配置项的格式为:server.N=IP:A:B

        N:服务器编号

        IP:服务器的IP地址

        A:LF通信端口,用来和leader交换信息

        B:leader挂掉后选举新leader的端口

      注:一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。

      2)搭建集群的环境的两种方式:

        ①同一主机的不同服务;

          例:

          server.1=127.0.0.1:2018:6008

          server.2=127.0.0.1:2017:6007

          server.3=127.0.0.1:2019:6009

        ②不同主机的相同或不同服务

          例:

          server.1=233.34.9.145:2019:6009

          server.2=233.34.9.146:2019:6009

          server.3=233.34.9.147:2019:6009

    3.搭建步骤

      这里以同一主机的不同服务为例。

      总体思路为:将原始的zookeeper压缩包解压;将解压复制后的zookeeper01修改一些公共配置,然后再复制两份;最后逐个修改各个服务的配置文件

      1)解压,复制

        ①tar -xzvf zookeeper-3.4.9.tar.gz

        ②cp -r zookeeper-3.4.9 zookeeper01

      2) 创建data数据文件和myid文件(myid文件定位服务)

        ①cd zookeeper01/

        ②mkdir data  //建数据目录文件

        ③cd data/

        ④touch myid  //创建myid文件 

        ⑤echo 1 >> myid  //将服务器的编号写在这里面

      3)修改zookeeper01/conf/下的配置文件

        ①cp zoo_sample.cfg zoo.cfg

        ②vim zoo.cfg

          将其中的dataDir修改为之前建的data的所在路径;然后再其末尾加上  集群信息(服务器编号,服务器地址,LF通信端口,选举端口)保存退出。如下图:

                      

      4)再复制两份

        cp -r zookeeper01/ zookeeper02

        cp -r zookeeper01/ zookeeper03

      5)将复制的修改其中的myid的2和3;

        echo 2 > /opt/zookeeper02/data/myid

        echo 3 > /opt/zookeeper03/data/myid

      6)复制后的再修改zoo.cfg中的dataDir和clientPort对应的值,如图:

        

                  

    4. 分别启动服务

      /opt/zookeeper03/bin/zkServer.sh start

      /opt/zookeeper02/bin/zkServer.sh start

      /opt/zookeeper01/bin/zkServer.sh start

      分别查看启动的状态

      /opt/zookeeper03/bin/zkServer.sh status

      /opt/zookeeper02/bin/zkServer.sh status

      /opt/zookeeper01/bin/zkServer.sh status

      若其状态为:Mode: follower 或 Mode: leader 表示启动成功。

      注意有时候,执行了启动命令,但是并未真的启动,所以需要查看状态。单个启动一个时可能会报错,需要一起启动其他的服务后,才能正常启动。

     5.启动客户端,连接服务器

      在 -server 参数中指定要连接的服务器

      打开三个终端,分别输入

      /opt/zookeeper01/bin/zkCli.sh -server 127.0.0.1:2181

      /opt/zookeeper02/bin/zkCli.sh -server 127.0.0.1:2182

      /opt/zookeeper03/bin/zkCli.sh -server 127.0.0.1:2183

      如下图:

             

    至此,三台服务搭建完成。在任何一台服务器上操作(增删节点,设置、修改节点值),在其他的服务器均能看到同步的数据

  • 相关阅读:
    会议开饭
    计算时间差(c#和sqlServer)
    sqlserver 新增表字段
    javascript刷新父页面的各种方法汇总
    java 从List中随机取出一个元素
    解决Appium 抓取toast(java篇)
    appium java-client 5.0以后移除了swipe方法,也就是无法使用driver.swipe()了
    appium怎么按下系统按键?如按下返回键、home键等等
    Android 常用 adb 命令总结
    appium Capabilities的各个标签
  • 原文地址:https://www.cnblogs.com/sun-flower1314/p/11393393.html
Copyright © 2011-2022 走看看