ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
安装流程
1、系统环境
Zookeeper要求Java运行环境,并且需要jdk版本1.6以上,相关安装可参考:
https://blog.csdn.net/wangjianan7357/article/details/81176580
2、下载
从Apache官网下载一个Zookeeper稳定版本,这里采用的是zookeeper-3.4.10版本:http://apache.org/dist/zookeeper/
解压文件:tar -zxvf zookeeper-3.4.10.tar.gz
3、设置配置
在conf/zoo.cfg文件中
tickTime=2000
dataDir=/tmp/zookeeper
dataLogDir=/tmp/zookeeper/log
clientPort=2181
参数名 | 说明 |
clientPort | 客户端连接server的端口,即对外服务端口,一般设置为2181吧。 |
dataDir | 存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。 |
tickTime | ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。 |
dataLogDir | 事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能。 |
initLimit | Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在 initLimit 时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。 |
syncLimit | 在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在 syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。 |
4、启动
./bin/zkServer.sh start
显示以下信息表示启动正常
5、状态查询
./bin/zkServer.sh status
6、停止
./bin/zkServer.sh stop