在worker1使用docker容器部署的zookeeper,列出当前 Kafka 集群中所有活跃的 Broker ID报错,直接在系统部署的zookeeper则正常,问题出在哪里?难道容器和直接部署不能配合搭建kafka集群吗?
zookeeper容器的配置文件
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=false
admin.enableServer=true
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=192.168.205.135:2888:3888
server.3=192.168.205.134:2888:3888
[root@worker1 kafka_2.12-3.9.0]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6cc09222023f zookeeper:latest "/docker-entrypoint.…" 6 minutes ago Up About a minute 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 0.0.0.0:2888->2888/tcp, :::2888->2888/tcp, 0.0.0.0:3888->3888/tcp, :::3888->3888/tcp, 8080/tcp zookeeper
[root@worker1 kafka_2.12-3.9.0]# sh /root/list_kafka_brokerID.sh
Connecting to localhost:2181
[2025-01-14 20:46:05,348] WARN Session 0x0 for server localhost/127.0.0.1:2181, Closing socket connection. Attempting reconnect except it is a SessionExpiredException. (org.apache.zookeeper.ClientCnxn)
EndOfStreamException: Unable to read additional data from server sessionid 0x0, likely server has closed socket
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:77)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1289)
KeeperErrorCode = ConnectionLoss for /brokers/ids
[2025-01-14 20:46:05,462] ERROR Exiting JVM with code 1 (org.apache.zookeeper.util.ServiceUtils)
[root@worker1 kafka_2.12-3.9.0]# jps
4609 QuorumPeerMain
6755 Jps
1019 Kafka
查看日志:docker logs 6c
2025-01-14 20:47:49,051 [myid:] - WARN [NIOWorkerThread-4:o.a.z.s.NIOServerCnxn@393] - Close of session 0x0
java.io.IOException: ZooKeeperServer not running
at org.apache.zookeeper.server.NIOServerCnxn.readLength(NIOServerCnxn.java:572)
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:352)
at org.apache.zookeeper.server.NIOServerCnxnFactory$IOWorkRequest.doWork(NIOServerCnxnFactory.java:508)
at org.apache.zookeeper.server.WorkerService$ScheduledWorkRequest.run(WorkerService.java:153)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
其中 worker2和worker3正常
[root@worker2 ~]# sh list_kafka_brokerID.sh
Connecting to localhost:2181
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[1, 2, 3]