Zookeeper简单配置
zookeeper
集群的协同服务,分布式协调服务
并行程序多进程之间的调度和控制
比如:多进程之间的互斥同步运行,多进程事务控制,多进程之间的状态监控,多进程之间的资源共享,进程的故障切换
zookeeper-3.4.10.tar
链接:https://pan.baidu.com/s/1VF_omDmCLrXVWrkomB4IZA
提取码:4ham
1 解压 zookeeper压缩包
tar -zxvf zookeeper-3.4.10.tar.gz -C ~/software/
(讲一下我自己有创建了一个software用来放各类软件,~此处等同于/home/user(家目录下的/用户名下的))
2 创建软连接,配置环境变量
vi ~/.bashrc
export ZK_HOME = /home/user/software
export PATH =$PATH:$ZK_HOME/bin
ln -s zookeeper-3.4.10/ zookeeper
3 创建
~/software/data/zk/data
~/software/data/zk/dataLog
4 在~/software/zookeeper/conf/ 新建文件 zoo.cfg
tickTime=2000
dataDir=~/software/data/zk/data
dataLogDir=~/software/data/zk/dataLog
clientPort=2181
#####上面部分是单例模式配置
//---------------------------
#####下面部分是全分布集群
在每台机器上
1 解压 zookeeper压缩包
2 创建软连接,配置环境变量
3 创建
~/software/data/zk/data
~/software/data/zk/dataLog
4 新建 ~/software/data/zk/data/myid
每台节点id不同
如 第一台 为 1 ,第二台为 2 ,第三台为 3
5 在$ZK_HOME/conf/ 新建文件 zoo.cfg
tickTime=2000
dataDir=~/software/data/zk/data
dataLogDir=~/software/data/zk/dataLog
clientPort=2181
initLimit=5
syncLimit=2
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
----------------------
zkServer.sh start
zkServer.sh status
leader or follower
####
zkCli.sh -server 127.0.0.1:2181
----------------
讲解:
1.tickTime:Client-Server通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
2.initLimit:Leader-Follower初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=5
3.syncLimit:Leader-Follower同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=2
4.dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/home/user/software/data/zk/data
5.clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181
6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.N=YYY:A:B
7.maxClientCnxns:对于一个客户端的连接数限制,默认是60,这在大部分时候是足够了。但是在我们实际使用中发现,在测试环境经常超过这个数,经过调查发现有的团队将几十个应用全部部署到一台机器上,以方便测试,于是这个数字就超过了。
8.autopurge.snapRetainCount、autopurge.purgeInterval -- 客户端在与zookeeper交互过程中会产生非常多的日志,而且zookeeper也会将内存中的数据作为snapshot保存下来,这些数据是不会被自动删除的,这样磁盘中这样的数据就会越来越多。不过可以通过这两个参数来设置,让zookeeper自动删除数据。autopurge.purgeInterval就是设置多少小时清理一次。而autopurge.snapRetainCount是设置保留多少个snapshot,之前的则删除。
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
myid的值是zoo.cfg文件里定义的server.A项A的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个server,只是一个标识作用。