您的位置:首页 > 其它

分布式协调服务zookeeper-集群安装

2017-09-05 15:16 316 查看
一、下载

官网https://zookeeper.apache.org/releases.html下载zookeeper,目前最新的稳定版本为 3.4.8 版本。

二、安装、配置

1、解压zookeeper-3.4.8.tar.gz

[zookeeper@bogon ~]$ tar -vxf zookeeper-3.4.8.tar.gz


2、conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。

zoo.cfg配置信息:

tickTime=2000

时长单位为毫秒,Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳

initLimit=10

集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。

syncLimit=5

集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。

此配置表示, leader 与 follower 之间发送消息,请求 和 应答 时间长度。如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃。

dataDir=/tmp/zookeeper

dataDir里放的是内存数据结构的snapshot,便于快速恢复。如果没有配置dataLogDir,那么事务日志也会存储在此目录。

clientPort=2181

客户端连接zookeeper服务的默认端口。

minSessionTimeout/ maxSessionTimeout

客户端连接zookeeper的时候,都会设置一个session timeout,如果超过这个时间client没有与zookeeper server有联系,则这个session会被设置为过期(如果这个session上有临时节点,则会被全部删除,这就是实现集群感知的基础。但是这个时间不是客户端可以无限制设置的,服务器可以设置这两个参数来限制客户端设置的范围。

autopurge.snapRetainCount/autopurge.purgeInterval

客户端在与zookeeper交互过程中会产生非常多的日志,而且zookeeper也会将内存中的数据作为snapshot保存下来,这些数据是不会被自动删除的,这样磁盘中这样的数据就会越来越多。不过可以通过这两个参数来设置,让zookeeper自动删除数据。autopurge.purgeInterval就是设置多少小时清理一次。而autopurge.snapRetainCount是设置保留多少个snapshot,之前的则删除。

3、启动zookeeper

执行bin目录下zkServer.sh
[zookeeper@bogon bin]$ ./zkServer.sh  start


4、客户端连接

执行bin目录下zkCli.sh
[zookeeper@bogon bin]$ ./zkCli.sh  -server 127.0.0.1:2181


三、集群配置

1、zoo.cfg中配置多个zookeeper

格式:server.id=ip:port1:port2

其中,id:也可以称之为Server ID,标识host机器在集群中的机器序号,id的范围是1~255

port1:表示follower和leader交换消息所使用的端口

port2:表示选举leader所使用的端口

下面看个例子:

以下为伪集群,zookeeper都在一台服务器上,所以端口不能一样,真正集群,ip不一样,端口可以配置为相同的

server.1=127.0.0.1:2187:3887

server.2=127.0.0.1:2188:3888

server.3=127.0.0.1:2189:3889

2、myid文件

在三台机器dataDir目录下,分别生成一个myid文件,其内容分别为Server ID。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: