Zookeeper系列介绍(持续更新

Zookeeper与大多数分布式软件一样,安装模式一般分为:

  • 单机部署:一般用来检验Zookeeper基础功能,熟悉ZK各种基础操作及特性;
  • 伪集群部署:在单台机器上部署集群,方便在本地验证集群模式下的各种功能;
  • 集群部署:一般在生产环境使用,具备一致性、分区容错性;
下载链接:http://mirror.bit.edu.cn/apache/zookeeper/ 本文以zookeeper-3.4.14为例介绍Windows环境下的三种安装模式;
Zookeeper需要运行在Java环境中,因此安装ZK前首先需要保证Java环境运行正常;

1.单机部署

  1. 下载zookeeper-3.4.14.tar.gz,本地解压;
  2. 在zookeeper-3.4.14/目录下创建data文件夹和log文件夹;
  3. 将zookeeper-3.4.14/conf下的文件zoo_sample.cfg复制一份到当前目录下,重命名为zoo.cfg;
  4. 打开zoo.cfg,配置dataDir及dataLogDir选项;
dataDir=…\\zookeeper\\zookeeper-3.4.14\\data
 dataLogDir=…\\zookeeper\\zookeeper-3.4.14\\log

  1. 【…代表zookeeper解压路径】
  2. 进入/bin目录下,打开cmd,输入命令zkServer.cmd,启动Zookeeper服务端,出现以下画面即为启动成功;
  3. 进入/bin目录下,打开cmd,输入命令zkCli.cmd,启动Zookeeper客户端,进行操作,以下为示例;
  1. 服务端启动不成功情况及解决办法
  • 解决方式:进入/bin目录下,编辑zkEnv.cmd文件,将set JAVA_HOME=%JAVA_HOME:"=%修改为set JAVA_HOME=C:\Program Files\Java\jre1.8.0_191(绝对路径)

2.伪集群部署

  1. 将单机部署模式下配置好的zk文件夹复制三分,分别命名为zk1、zk2、zk3,代表集群中的三个节点;
  1. 分别修改zk1、zk2、zk3下的/conf/zoo.cfg中的配置,修改如下(zk2、zk3下的配置与zk1类似,不同之处在于:dataDir和dataLogDir的路径、clientPort端口号):
    server.num=ip/domain:port1:port2,参数含义如下:
    num:表示第几号服务器;
    ip/domain :服务器域名或者ip地址。
    port1:当前服务器和Leader服务器交换信息的端口;
    port2:当前Leader服务器宕机后,重新选举Leader时服务器之间交换信息的端口;
  1. 在zk1、zk2、zk3的data文件夹下创建myid文件,文件中添加当前服务器num;
  1. 分别启动zk1、zk2、zk3下的zkServer.cmd,启动过程中会报错,这是因为当前服务器节点发现其他节点不在线,等集群节点全部启动后就会显示正常;【有一个节点会当选为Leader节点】
  2. 集群演示
  1. 如果想在集群中拥有observer 角色,则配置需要略微调整。假设zk3变为observer角色,则zk1、zk2、zk3的zoo.cfg修改如下:
    server.1=127.0.0.1:2888:3888
    server.2=127.0.0.1:2889:3889
    server.3=127.0.0.1:2890:3890:observer
    另外,zk3的zoo.cfg需要添加一个配置:peerType=observer,以用来开启observer;

集群模式

集群模式的安装方式与伪集群模式基本一致,只是替换server.num的配置即可;