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,只是一个标识作用。

 

posted @ 2019-07-03 18:56  DiYong  阅读(178)  评论(0编辑  收藏  举报