1.zookeeper搭建
1.安装jdk
2.创建文件夹
mkdir /opt/zookeeper-One
mkdir /opt/zookeeper-One/data
3.上传zookeeper文件
4.修改zoo_sample.conf 文件名称
mv zoo_sample.cfg zoo.cfg
5.修改zoo.cfg配置
dataDir=/opt/zk/zookeeper-One/data
6.启动zk
./zookeeper-3.4.6/bin/zkServer.sh start
2.集群搭建
2.1 准备工作
前提解释:作者在一台服务器上搭建了三台假集群
1 安装jdk
2 将Zookeeper上传到服务器(上传到这个目录/opt/zk/)
3 解压Zookeeper,并创建data目录,将conf下的zoo_sample.cfg文件改名为zoo.cfg
mkdir /opt/zk/zookeeper-1/data
mkdir /opt/zk/zookeeper-2/data
mkdir /opt/zk/zookeeper-3/data
cd /opt/zk/zookeeper-1/zookeeper-3.4.6/conf/
cd /opt/zk/zookeeper-2/zookeeper-3.4.6/conf/
cd /opt/zk/zookeeper-3/zookeeper-3.4.6/conf/
mv zoo_sample.cfg zoo.cfg
4 配置每一个 Zookeeper 的 dataDir(zoo.cfg) clientPort 分别为 2181 2182 2183
修改/opt/zk/zookeeper-1/zookeeper-3.4.6/conf/zoo.cfg
clientPort=2181
dataDir=/opt/zk/zookeeper-1/zookeeper-3.4.6/data
修改/opt/zk/zookeeper-2/zookeeper-3.4.6/conf/zoo.cfg
clientPort=2182
dataDir=/opt/zk/zookeeper-2/zookeeper-3.4.6/data
修改/opt/zk/zookeeper-3/zookeeper-3.4.6/conf/zoo.cfg
clientPort=2183
dataDir=/opt/zk/zookeeper-3/zookeeper-3.4.6/data
2. 2配置集群
- 在每个 zookeeper 的 data 目录下创建一个 myid 文件,内容分别是 1、2、3 。这个文件就是记录每个服务器的 ID
创建文件
touch zookeeper-1/data/myid
touch zookeeper-2/data/myid
touch zookeeper-3/data/myid
-
在每一个 zookeeper 的 zoo.cfg 配置客户端访问端口(clientPort)和集群服务器 IP 列表。
集群服务器 IP 列表如下
server.1=192.168.25.140:2881:3881
server.2=192.168.25.140:2882:3882
server.3=192.168.25.140:2883:3883
解释:server.服务器 ID=服务器 IP 地址:服务器之间通信端口:服务器之间投票选举端口
2.3启动zk集群
./zookeeper-1/zookeeper-3.4.6/bin/zkServer.sh start
./zookeeper-2/zookeeper-3.4.6/bin/zkServer.sh start
./zookeeper-3/zookeeper-3.4.6/bin/zkServer.sh start
3.启动客户端
进入zk的bin目录
./zkCli.sh -timeout 5000 -server 127.0.0.1:2181
4.版本说明
2019年5月20日发行的3.5.5是3.5分支的第一个稳定版本。此版本被认为是3.4稳定分支的后续版本,可以用于生产。基于3.4它包含以下新功能
- 动态重新配置
- 本地会议
- 新节点类型:容器,TTL
- 原子广播协议的SSL支持
- 删除观察者的能力
- 多线程提交处理器
- 升级到Netty 4.1
- Maven构建
另请注意:建议的最低JDK版本为1.8
文件说明:
- apache-zookeeper-xxx-tar.gz 代表源代码
- apache-zookeeper-xxx-bin.tar.gz 运行版本
5.zk常规配置文件说明
# zookeeper时间配置中的基本单位 (毫秒)
tickTime=2000
# 允许follower[初始化连接]到leader最大时长,它表示tickTime时间倍数 即:initLimit*tickTime
initLimit=10
# 允许follower与leader[数据同步]最大时长,它表示tickTime时间倍数
syncLimit=5
#zookeper 数据存储目录
dataDir=/tmp/zookeeper
#对客户端提供的端口号
clientPort=2181
#单个客户端与zookeeper最大并发连接数
maxClientCnxns=60
# 保存的数据快照数量,之外的将会被清除
autopurge.snapRetainCount=3
#自动触发清除任务时间间隔,小时为单位。默认为0,表示不自动清除。
autopurge.purgeInterval=1