zookeeper安装和配置

简介

分布式应用现在已经越来越广泛,作为服务治理之一的zookeeper应用也比较广泛。在mq集群、微服务、分布式定时任务、分布式锁等方面有着不错的表现。今天来简单介绍一下zookeeper的集群安装。

下载

下载地址:

wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
zkDown.png

安装和配置

  • 解压
tar zxvf zookeeper-3.4.10.tar.gz
  • 配置
    然后在对应的zookeeper-3.4.10/conf 下有一个文件zoo_sample.cfg,,这个文件里面配置了监听客户端连接的端口等一些基本信息,Zookeeper 在启动时会找zoo.cfg这个文件作为默认配置文件,所以我们复制zoo_sample.cfg文件改名为zoo.cfg,然后在zoo.cfg文件中做一些定制化的配置。
    先复制文件,使用cp zoo_sample.cfg zoo.cfg命令复制。


    cp_zoo.cfg.png
# 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=/home/admin/zookeeper-3.4.10/zkdata
dataLogDir=/home/admin/zookeeper-3.4.10/zkdatalog
# the port at which the clients will connect
clientPort=12181

server.1=10.252.100.25:12888:13888
server.2=10.252.100.26:12888:13888
server.3=10.252.100.27:12888:13888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

参数说明:
initLimit
ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。
syncLimit
配置follower和leader之间发送消息,请求和应答的最大时间长度。
tickTime
tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
server.id=host:port1:port2
其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。
host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
dataDir
其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。
注意
如果仅为了测试部署集群模式而在同一台机器上部署zk进程,server.id=host:port1:port2配置中的port参数必须不同。但是,为了减少机器宕机的风险,强烈建议在部署集群模式时,将zk进程部署不同的物理机器上面。
12888 端口号是zookeeper服务之间通信的端口
13888 是zookeeper 与其他应用程序通信的端口

  • 创建日志目录和数据目录
[root@eureka3 zookeeper-3.4.10]# mkdir zkdatalog
[root@eureka3 zookeeper-3.4.10]# mkdir zkdata
  • 创建myid文件
    集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就只有一个数据就是server后面对应的数字,配置时要对应到相应的服务器,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断是哪个server。
[root@eureka2 zkdata]# vi myid

启动

[root@eureka3 zookeeper-3.4.10]# cd bin
[root@eureka3 bin]# ls
README.txt  zkCleanup.sh  zkCli.cmd  zkCli.sh  zkEnv.cmd  zkEnv.sh  zkServer.cmd  zkServer.sh
[root@eureka3 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/admin/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

启动成功查看运行状态

[root@eureka3 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/admin/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader

leader表示主节点,如果是从节点这是follower
至此,zookeeper集群搭建完成。

你可能感兴趣的:(zookeeper安装和配置)