集群安装对应依赖于上一篇博客中ZK单台安装相关目录算法
由于有3个节点,分别设置三个配置文件.session
zk1.cfg zk2.cfg zk3.cfg日志
对应zk1.cfg的配置为:server
tickTime属性做为是对应session保存时间为这个时间的2倍,单位毫秒队列
其中initLimit 参数为:Follower节点启动的时候,会到leader节点同步数据,领导者端只容许在这个设置的时间内同步完数据,不然不任务加入zk队列中.ip
syncLimit 为领导者按期去检查时间其下节点是否状态还正常.同步
另外:还须要配置dataLogDir 参数,在生产环境下必定要配置.是记录事物日志的.这个会单独挂载到一个磁盘上.博客
dataDir 为对应主机的数据文件夹.it
由于有三台zk,因此有三个serverio
server.1 server.2 server.3 其中数据 1 2 3 就是对应节点的id号,由于这个id值做为标识,分别在对应文件夹中记录对应id的内容.
对应配置文件zk1.cfg,zk2.cfg,zk3.cfg中对应这部份内容是相同的:
其余属性按各自内容配置
这里须要特别注意:
在集群环境下,须要在对应的文件夹下创建一个myid 文件(touch myid)
里面内容分别为server.Id的值,
好比,zk1文件夹下,myid 内容为 1 依次类推,分别为 2 3
上述须要特别注意的是对应dataDir 属性配置以及server.1 server.2 server.3 的相关配置.
上述:server 命名中 ip:port1:port2
其中第一个端口号为zk 中各服务通讯的端口号,是leader与Follower之间通讯的端口号, 第二个端口号为zk与zk之间通讯的端口号.
好比第1个端口:主从之间的数据同步
好比第二个端口,在zk与zk之间须要投票,其中第二个端口是这个做用,这个是zk与zk间的通讯.
配置完,启动对应zk
后面配置文件不用输入路径,zk会自动的去conf中去找对应文件
集群环境下,自动根据特定算法肯定主机或者从机:
集群环境下,只有最少启动2台ZK,才能登录客户端...
使用telnet 命令可查看对应主机内容:
以下这台为从机follower:
以下的为Leader
使用ls2 查看对应节点详细信息:
对应参数:
cZxid 为节点建立的时候事物id标识
ctime 为建立时间
mZxid 为节点修改的事物id
mtime 修改时间
pZxid --删除或新增修改这个东西
cversion 当前子节点修改过,这个属性会改变,作累加操做
dataVersion 好比使用set 命令,这个会增长.
aclVersion 节点权限发生变化后,对应值也会变动 ---对应临时节点须要经过对应sessionId肯定对应节点.
ephemeralOwner 建立临时节点的sessionId
dataLength 数据长度
numChildren 子节点长度
临时节点不能建立子节点...
至此:zk集群建立完毕.