zookeeper集群快速搭建

zookeeper集群快速搭建

      Zookeeper是Google的一个开源实现,被Hadoop、dubbo等流行开源架构作为分布式协调服务,它很好地实现了多个进程间的同步,维护和命名等功能。

三分钟搭一个ZK集群
  1. 下载ZK包

    去选包:http://zookeeper.apache.org/releases.html#download

    或直接下载(2018年12月最新稳定版):http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/

  2. 在windows或unix中解压,我们搭三个ZK的集群,所以在三台服务器中分别解压

    unix:


[root]$ tar zxfv zookeeper-3.4.13.tar.gz

  1. 修改配置文件

    在三台服务器中分别配置,找到zoo-sample.cfg,改名为zoo.cfg,覆盖内容


tickTime=2000
initLimit=5
syncLimit=2
dataDir=C:\\Users\\Administrator\\Desktop\\zookeeper\\data
dataLogDir=C:\\Users\\Administrator\\Desktop\\zookeeper\\log
clientPort=2181
server.1=host1:2888:3888
server.2=host2:2888:3888
server.3=host3:2888:3888

      dataDir和dataLogDir修改为自己的目录,host1、host2、host3修改为自己的服务器IP

  1. myid配置

    在上述配置中的dataDir目录下新建myid文件,里面的值在三台服务器中分别为1、2、3
    ok,自此已全部配置完毕

  2. 启动

    在bin目录下(当然,也可以将ZK配到环境变量中),分别在三台服务器执行

    windows:


[root]$ zkServer.cmd

unix:


[root]$ ./zkServer.sh start

完美启动

  1. 连接shell-cli
    在bin目录下,任意一台服务器中执行
    windows:

[root]$ zkCli.cmd -server 127.0.0.1:2181

unix:


[root]$ ./zkCli.sh -server 127.0.0.1:2181

配置完毕,启动并连接测试完毕

zookeeper 常用shell
  • 创建节点
[root]$ create /path1       # 创建path1节点
[root]$ create /path1/dir1  # 在path1节点中添加敌人dir1节点
[root]$ create /path1/dir2  # 在path1节点中添加敌人dir2节点

  • 添加/获取消息

[root]$ set /path1 message
[root]$ get /path1

  • 删除空节点

[root]$ delete /path1

  • 删除非空节点

[root]$ rmr /path1

zoo.cfg配置详解

1.tickTime:CS通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000

2.initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=5  

3.syncLimit:LF同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=2  
 
4.dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。win系统下必须\\
dataDir=/home/michael/opt/zookeeper/data  
dataLogDir=/home/michael/opt/zookeeper/log

5.clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181 

6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.host:A:B 

server.1=host1:2888:3888
server.2=host2:2888:3888
server.3=host3:2888:3888

同时在dataDir文件夹下新建myid文件,里面的值为1、2、3

集群实例数量控制
  1. 存活的实例必须过半数
    在这里插入图片描述
    zk集群将消息通知到过半存活的leader实例后直接返回用户,增加反馈及时性,所以为了在多个leader node间保持数据的一致性,存活的实例必须过半

  2. 数量最好是奇数

    6过半是3,5过半也是3,实例数目越多,网络开销以及实例之间协调的耗费也会比较大
     
     
     
     
     
     
     
     
     
     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值