✍内容

zookeeper的搭建

由于至少要三个服务器,只能搭建个伪集群了

简单搭建

  1. 将Zookeeper解压 ,建立/usr/local/zookeeper目录,将解压后的Zookeeper复制到以下三个目录,都一样。

下面拿一个说例子,其它的都一样
2. 创建data目录 ,并且将 conf下zoo_sample.cfg文件改名为zoo.cfg
3.  配置每一个Zookeeper 的配置文件zoo.cfg

clientPort=2182
dataDir=/usr/local/src/zookeeper/zookeeper-1/data
  1. 配置集群
    echo 1 >/usr/local/src/zookeeper/zookeeper-1/data/myid
    echo 2 >/usr/local/src/zookeeper/zookeeper-2/data/myid
    echo 3 >/usr/local/src/zookeeper/zookeeper-3/data/myid
  2. 配置IP列表,写在zoo.cfg的最后面,192.168.58.150是你的虚拟机IP
    server.1=192.168.58.150:2881:3881
    server.2=192.168.58.150:2882:3882
    server.3=192.168.58.150:2883:3883

启动

/usr/local/src/zookeeper/zookeeper-1/bin/zkServer.sh start
/usr/local/src/zookeeper/zookeeper-2/bin/zkServer.sh start
/usr/local/src/zookeeper/zookeeper-3/bin/zkServer.sh start

查看

/usr/local/src/zookeeper/zookeeper-1/bin/zkServer.sh status
/usr/local/src/zookeeper/zookeeper-2/bin/zkServer.sh status
/usr/local/src/zookeeper/zookeeper-3/bin/zkServer.sh status

基础命令

服务器命令 描述
启动服务 zkServer.sh start
停止服务 zkServer.sh stop
重启服务 zkServer.sh restart
查看服务状态 zkServer.sh status
客户端命令 描述
客户端连接 zkCli.sh
查看 ls /

节点操作

操作 命令
创建节点 create /test Hello
-s(代表顺序节点)
-e(代表临时节点)
修改节点数据 set /test Hero
获取节点数据 get /test
查看节点状态 stat /test
删除节点 delete /test

集群异常

  1. 3个节点的集群,有一个从服务器挂掉,集群正常。
  2. 3个节点的集群,2个从服务器都挂掉,主服务器也无法运行。因为可运行的机器没有超过集群总数量的半数。
  3. 当集群中的主服务器挂了,集群中的其他服务器会自动进行选举状态,然后产生新得leader 。
  4. 当领导者产生后,再次有新服务器加入集群,不会影响到现任领导者。

伪集群模式

伪集群模式,主要是在一台设备上模拟集群环境

创建3个不同的配置文件
server后面跟的编号,是dataDir目录下myid文件中的值
配置文件中会涉及到3种不同类型的端口

  • 2181 对client端提供服务
  • 2881 集群内机器间相互通讯使用
  • 3881 选举leader使用
tickTime=2000
initLimit=5
dataDir=/tmp/zookeeper/data3
clientPort=2183
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

在给定的 ZooKeeper 配置中,其中的 server 地址都使用了回环地址(127.0.0.1)。这是因为这是在本地环境中设置伪集群的典型做法。使用回环地址可以将所有 ZooKeeper 服务器配置在同一台机器上,通过不同的端口进行通信,从而在单一设备上模拟一个多节点的 ZooKeeper 集群。