Jusene's Blog

ZooKeeper学习-搭建方式(二)

字数统计: 630阅读时长: 2 min
2018/01/23 Share

ZooKeeper搭建方式

一般集群搭建的方式都分三种:

  • 单机模式: ZooKeeper只运行在一台服务器,适合测试环境
  • 伪集群模式: 就是在一台物理机上运行多个ZooKeeper实例,适合测试环境
  • 集群模式: ZooKeeper运行在一个集群上,适合生产环境 ZooKeeper通过复制来实现高可用性,只要集合中半数以上的机器处于可用状态,它就能够保证服务继续,所以一个正常的集群最少3台。

ZooKeeper伪集群部署

为了方便我就只在一台服务器上做ZooKeeper集群,分布式部署可以参照该部署方式完成。

zookeeper官网地址:https://zookeeper.apache.org/

  • node-1

    1
    ~]# tar xf zookeeper-3.4.11.tar.gz -C /usr/local/
    2
    ~]# cd /usr/local/zookeeper-3.4.11/conf
    3
    ~]# cp zoo_sample.cfg zoo1.cfg
    4
    ~]# cat zoo1.cfg
    5
    tickTime=2000 发送心跳的间隔(毫秒)
    6
    initLimit=10  初始化zookeeper时,连接到leader的follower服务器,最长可以忍受多少个心跳周期
    7
    syncLimit=5   leader与follower之间发送消息,请求和应答的时间长度,最长可以忍受多少个心跳周期
    8
    dataDir=/data/zookeeper/node-1/data dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里
    9
    dataLogDir=/data/zookeeper/node-1/log zookeeper将数据的日志文件保存的目录
    10
    clientPort=2181  客户端连接到zookeeper服务器端口
    11
    #maxClientCnxns=60  客户端连接到zookeeper服务器的最大并发连接数
    12
    #autopurge.snapRetainCount=3  在dataDir中保留的快照数量
    13
    #autopurge.purgeInterval=1  清除任务的间隔时间(小时)
    14
    15
    server.0=localhost:2287:3387  0号服务器,2287是集群成员的信息交换,3387进行重新选举leader所用的端口
    16
    server.1=localhost:2288:3388
    17
    server.2=localhost:2289:3389
    18
    19
    ~]# echo 0 > /data/zookeeper/node-1/data/myid  #创建myid文件
  • node-2

    1
    ~]# cp zoo_sample.cfg zoo2.cfg
    2
    ~]# vim zoo2.cfg
    3
    tickTime=2000
    4
    initLimit=10
    5
    syncLimit=5
    6
    dataDir=/data/zookeeper/node-2/data
    7
    dataLogDir=/data/zookeeper/node-2/log
    8
    clientPort=2182
    9
    server.0=localhost:2287:3387
    10
    server.1=localhost:2288:3388
    11
    server.2=localhost:2289:3389
    12
    ~]# echo 1 > /data/zookeeper/node-2/data/myid
  • node-3

    1
    ~]# cp zoo_sample.cfg zoo3.cfg
    2
    ~]# vim zoo3.cfg
    3
    tickTime=2000
    4
    initLimit=10
    5
    syncLimit=5
    6
    dataDir=/data/zookeeper/node-3/data
    7
    dataLogDir=/data/zookeeper/node-3/log
    8
    clientPort=2183
    9
    server.0=localhost:2287:3387
    10
    server.1=localhost:2288:3388
    11
    server.2=localhost:2289:3389
    12
    ~]# echo 2 > /data/zookeeper/node-3/data/myid

启动zookeeper

1
~]# cd ../bin
2
~]# ./zkServer.sh start ../conf/zoo1.cfg
3
~}# ./zkServer.sh start ../conf/zoo2.cfg
4
~]# ./zkServer.sh start ../conf/zoo3.cfg
5
6
~]# ./zkServer.sh status ../conf/zoo2.cfg 
7
ZooKeeper JMX enabled by default
8
Using config: ../conf/zoo2.cfg
9
Mode: leader
10
~]# ./zkServer.sh status ../conf/zoo1.cfg 
11
ZooKeeper JMX enabled by default
12
Using config: ../conf/zoo1.cfg
13
Mode: follower
14
~]# ./zkServer.sh status ../conf/zoo3.cfg 
15
ZooKeeper JMX enabled by default
16
Using config: ../conf/zoo3.cfg
17
Mode: follower
CATALOG
  1. 1. ZooKeeper搭建方式
  2. 2. ZooKeeper伪集群部署