Zookeeper简介
zookeeper是致力于提供一个高性能、高可用,且具备严格的循序访问控制能力的分布式协调服务。由雅虎公司创建,是谷歌的Chubby一个开源实现,也是Hadoop和Hbase的重要组件。
特点:
简单数据结构:共享的树形结构,类似文件系统,数据存储在内存中
顺序访问:对于每个读请求,zk会分配一个全局唯一的递增编号,利用这个特性可以实现高级协调服务
可构建集群:避免单点故障,3-5台机子便可组成集群,过半机制 保证只要超过半数机子正常工作就能对外提供服务
高性能:基于内存操作,服务于非事务请求,适用于读操作为主的业务场景。3台zk集群能达到13w QPS
适用场景:
发布订阅 集群管理 负载均衡 配置管理 命名服务 分布式队列 分布式锁 (后面会详细学习)
下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
我在这里使用的是 zookeeper-3.5.7 版本
这里我直接下载使用编译好的二进制文件压缩包。
安装:
将下载好的压缩包上传到服务器,使用命令: tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz 解压
修改zk的配置文件 我这里使用的是伪集群模式
#间隔都是使用tickTime的倍数来表示的,例如initLimit=10就是tickTime的十倍等于2W毫秒
tickTime=2000
initLimit=10
#间隔都是使用tickTime的倍数来表示的,例如initLimit=10就是tickTime的十倍等于2W毫秒
syncLimit=5
#数据文件目录
dataDir=/usr/local/zookeeper/server1/data
dataLogDir=/usr/local/zookeeper/server1/log
#端口号 对外交互的端口号
clientPort=2181
#允许连接的客户端数目,0-不限制,通过 IP 来区分不同的客户端
maxClientCnxns=60
# 在dataDir中保留的快照数和日志文件数 最小值为3
autopurge.snapRetainCount=3
# 0禁止自动清除 1为每小时自动清除 默认不开启
autopurge.purgeInterval=0
#伪集群配置 真集群配置localhost使用真实ip 单机模式需要以下配置
#端口号2881为zk集群之后通信的端口号 3881为zk集群选举的端口号
server.1=localhost:2881:3881
server.2=localhost:2882:3882
server.3=localhost:2883:3883
创建myid
数据文件夹目录下使用 echo 1 > myid 创建myid,对应集群配置 server.1=localhost:2881:3881 中server后的1,是zk服务的id 只能为数字且不能重复
启动与停止
进入zk的bin目录下
./zkServer.sh start 跟指定的配置文件 启动zk
./zkServer.sh restart 跟指定的配置文件 重新启动zk
./zkServer.sh stop 跟指定的配置文件 停止zk
./zkServer.sh status 跟指定的配置文件 查看zk的运行状态
可以看到端口号为2182的zk进程为leader节点
注意
zookeeper 启动需要依赖 jdk,所以必须先安装jdk
来源:https://www.cnblogs.com/happily-ye/p/12444487.html