Zookeeper集群部署

在生产环境中,ZooKeeper应该在多台服务器上运行集群模式,建议服务器最低的数量是3个,在集群模式中,ZooKeeper实例以leader/follower角色运行

主机 版本
192.168.48.128 apache-zookeeper-3.5.5-bin.tar.gz 
192.168.48.129  
192.148.48.130  

运行zookeeper需要实现部署jdk, 点我查看部署jdk

安装zookeeper

mkdir /opt/service
tar xf apache-zookeeper-3.5.5-bin.tar.gz -C /opt/service/
ln -s apache-zookeeper-3.5.5-bin zookeeper

#zoo,cfg是配置文件
cd /opt/service/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg

创建数据日志目录

mkdir -p /data/zk/{data,datalog}
mkdir -p /log/zk

 编辑配置文件/opt/service/zookeeper/conf/zoo.cfg

tickTime=2000   #单位是毫秒,默认是2000毫秒。Tick是zookeeper用于确定心跳和会话的超时基本时间单位,降低tickTime可以更快的超时,但会增加网络开销
initLimit=10    # follower连接leader超时配置
syncLimit=5     # follower与leader同步超时配置,单位是 tick的数量
dataDir=/data/zk/data    #这个是存储zookeeper内存目录的快照,如果dataLogDir没有配置,数据库更新的事物日志也将存储在此目录中,myid文件也是存储在此目录中,如果事物日志存储在其他位置,那么这个目录的性能不敏感
dataLogDir=/data/zk/datalog  #存储事务日志目录
clientPort=2181
server.1=192.168.48.128:2888:3888
server.2=192.168.48.129:2888:3888
server.3=192.168.48.130:2888:3888

#2888端口, 这个端口只有leader会开启,主要用于follower打开一个TCP去连接leader的2888端口,确定法定人数
#3888端口, 这个端口所有角色都会开启,用于leader选举,

数据目录写入id

#192.168.48.128
echo "1" >/data/zk/data/myid

#192.168.48.129
echo "2" >/data/zk/data/myid

#192.168.48.130
echo "3" >/data/zk/data/myid

修改Zookeeper日志输出路径 /opt/service/zookeeper/bin/zkEnv.sh

if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="/log/zk"
fi

JVM配置/opt/service/zookeeper/conf/java.env

#!/bin/sh
export JAVA_HOME=/usr/local/jdk
# heap size MUST be modified according to cluster environment
export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS"

配置环境变量

# cat /etc/profile.d/zk.sh 
export ZK_HOME=/opt/service/zookeeper
export PATH=$PATH:$ZK_HOME/bin

# source /etc/profile.d/zk.sh 

启动

zkServer.sh start

查看状态

# zkServer.sh status
$ echo ruok|nc localhost 2181     #他检查服务器是否正在运行而没有任何错误。该如果它正在运行,服务器将响应imok。 如果服务器出现了一些错误状态,它不会响应此命令
$ echo conf|nc localhost 2181     #输出server的详细配置信息
$ echo cons|nc localhost 2181     #输出指定server上所有的客户端连接的详细信息,包括客户IP,回话ID等
$ echo crst|nc localhost 2181     #重置所有的连接信息统计
$ echo mntr|nc localhost 2181     #输出zk的一些运行时信息
$ echo stat|nc localhost 2181     #输出server简要状态和连接的客户端信息
$ echo dump|nc localhost 2181     #输出所有等待队列中的回话和临时节点的信息,针对leader
$ echo envi|nc localhost 2181     #输出环境参数
四字母

 Zookeeper核心特性

原文地址:https://www.cnblogs.com/sellsa/p/11208532.html