Zookeeper集群搭建

2018-08-05  本文已影响0人  touch_The_Sky

Zookeeper在分布式系统中一般用来当做注册中心、配置中心,或者用来实现分布式锁等, 不论哪一个角色在系统中都是绝对的中心,Zookeeper一旦挂掉对系统的影响无疑是毁灭性的, 所以生产环境中一般都会配置为集群保证服务的高可用。

下面我们在一台机器上模拟一下zookeeper集群,其实在多台机也是一样的过程

1 . 安装三个zookeeper

     1. 下载zookeeper
     2. 修改配置文件
       将conf/zoo_sample.cfg复制一份命名为zoo.cfg
       # 内存数据的备份地址,必须保证路径存在
       dataDir=/usr/local/zookeeper1/data
       # 存放日志地址,必须保证路径存在
       dataLogDir=/usr/local/zookeeper1/logs
     3. 启动 zkServer 
        zkServer.sh  start
     4. netstat -ntlp #查看是否启动成功

3 . 在 所有zoo.conf 中添加以下信息(单机模拟clientPort不能相同 )

    tickTime=2000    # Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,每个 tickTime 时间就会发送一个心跳。   
dataDir=/usr/local/zookeeper1/data   #Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里
    clientPort=218x   #zookeeper提供服务的接口也就是监听客户端连接的端口,自己修改
    initLimit=5  #用来配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数。5就表示最长接受5*2000=10秒间隔
    syncLimit=2  #Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
    server.1=127.0.0.1:2887:3887   #1表示这是第几号服务器, 2883:3888 集群成员之间交换信息的端口:Leader挂了重新选举Leader的端口
    server.2=127.0.0.1:2888:3888  
    server.3=127.0.0.1:2889:3889  

4 . 创建myid文件

在我们配置的dataDir目录下创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,例如:server.1的dataDir下应该建立一个myid的文件,其中写入1

5. 启动集群

先启动哪个无所谓, 由于前面的节点在启动时候会尝试去连接其他节点,所以先启动的节点会有报错信息,这是正常的不用理会,等到leader选举出来了就可以正常工作了


image.png

客户端连接:

客户端连接集群方式: zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
各节点以逗号分隔

dubboAdmin 连接zookeeper集群:

#修改webapps/ROOT/Web-Info/dubbo.properties:
dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
或者直接使用ip
dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183

查看节点状态:

./zkServer.sh status
上一篇下一篇

猜你喜欢

热点阅读