docker-compose 搭建zookeeper真伪结合集群

it2026-02-06  0

docker和docker-compose 安装方法请自行百度

 

服务器结构

服务器编号10111213类型observerleader、follower、followerobserverobserver

4台服务器 搭建6个zk

其中11服务器上有一个两个follower和一个leader的伪集群

编写docker-compose.yml

这里只列举一个伪集群的11服务和随便一个observer的 

伪集群的docker-compose.yml

version: '2' services: zoo1: image: zookeeper restart: always network_mode: "host" container_name: zoo1 ports: - "2181:2181" - "2887:2888" - "3887:3888" environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=192.168.2.11:2887:3887;2181 server.2=192.168.2.11:2888:3888;2182 server.3=192.168.2.11:2889:3889;2183 server.4=192.168.2.10:2888:3888:observer;2181 server.5=192.168.2.12:2888:3888:observer;2181 zoo2: image: zookeeper restart: always network_mode: "host" container_name: zoo2 ports: - "2182:2181" - "2888:2888" - "3888:3888" environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=192.168.2.11:2887:3887;2181 server.2=192.168.2.11:2888:3888;2182 server.3=192.168.2.11:2889:3889;2183 server.4=192.168.2.10:2888:3888:observer;2181 server.5=192.168.2.12:2888:3888:observer;2181 zoo3: image: zookeeper restart: always network_mode: "host" container_name: zoo3 ports: - "2183:2181" - "2889:2888" - "3889:3888" environment: ZOO_MY_ID: 3

observer docker-compose.yml

version: '2' services: zoo1: image: zookeeper restart: always container_name: zookeeper network_mode: "host" ports: - "2181:2181" - "2888:2888" - "3888:3888" volumes: - "/usr/local/zookeeper/data:/data" environment: ZOO_MY_ID: 4 PEER_TYPE: observer ZOO_SERVERS: server.1=192.168.2.11:2887:3887;2181 server.2=192.168.2.11:2888:3888;2182 server.3=192.168.2.11:2889:3889;2183 server.4=192.168.2.10:2888:3888:observer;2181 server.5=192.168.2.12:2888:3888:observer;2181

这里没写13服务的配置 需要请自行添加

ports可以不指定,因为设置了网络模式为“host” 指定posts将不再起作用 这里我是懒得没去

其中也是遇到了很多问题,经过很多摸索才写对

 可能遇到的问题:

1、不停打印错误日志

java.io.IOException: Leaders epoch, 1 is less than accepted epoch, 6 at org.apache.zookeeper.server.quorum.Learner.registerWithLeader(Learner.java:471) at org.apache.zookeeper.server.quorum.Observer.observeLeader(Observer.java:110) at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:1439) 2020-10-22 15:38:18,254 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):Observer@138] - Disconnected from leader (with address: /192.168.2.11:2889). Was connected for 4ms. Sync state: false 2020-10-22 15:38:18,254 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):Observer@243] - shutdown Observer 2020-10-22 15:38:18,254 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@863] - Peer state changed: looking 2020-10-22 15:38:18,254 [myid:5] - WARN [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@1504] - PeerState set to LOOKING 2020-10-22 15:38:18,254 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):Observer@258] - Waiting for 195 ms before reconnecting with the leader 2020-10-22 15:38:18,449 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@1374] - LOOKING 2020-10-22 15:38:18,450 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):FastLeaderElection@944] - New election. My id = 5, proposed zxid=0x8000000000000000 2020-10-22 15:38:18,451 [myid:5] - INFO [WorkerReceiver[myid=5]:FastLeaderElection$Messenger$WorkerReceiver@389] - Notification: my state:LOOKING; n.sid:3, n.state:LEADING, n.leader:3, n.round:0x1, n.peerEpoch:0x1, n.zxid:0x0, message format version:0x2, n.config version:0x0 2020-10-22 15:38:18,451 [myid:5] - INFO [WorkerReceiver[myid=5]:FastLeaderElection$Messenger$WorkerReceiver@389] - Notification: my state:LOOKING; n.sid:2, n.state:FOLLOWING, n.leader:3, n.round:0x1, n.peerEpoch:0x1, n.zxid:0x0, message format version:0x2, n.config version:0x0 2020-10-22 15:38:18,451 [myid:5] - INFO [WorkerReceiver[myid=5]:FastLeaderElection$Messenger$WorkerReceiver@389] - Notification: my state:LOOKING; n.sid:1, n.state:FOLLOWING, n.leader:3, n.round:0x1, n.peerEpoch:0x1, n.zxid:0x0, message format version:0x2, n.config version:0x0 2020-10-22 15:38:18,451 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@857] - Peer state changed: observing 2020-10-22 15:38:18,451 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@1437] - OBSERVING 2020-10-22 15:38:18,451 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):ZooKeeperServer@1256] - minSessionTimeout set to 4000 2020-10-22 15:38:18,452 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):ZooKeeperServer@1265] - maxSessionTimeout set to 40000 2020-10-22 15:38:18,452 [myid:5] - INFO [QuorumPeer[myid=5](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):ResponseCache@45] - Response cache size is initialized with value 400.

 进入到zk容器 删除/data/version-xx文件

重启容器

如有问题请留言

 

最新回复(0)