运行 docker-compose -f common.yml -f kafka_cluster.yml up 命令之后,其中一个broker容器未启动,原因是什么?

发布时间 2023-07-31 16:25:59作者: ForMei

  今天在运行 docker-compose -f common.yml -f kafka_cluster.yml up ,这条命令的时候,原来应该启动的broker-3容器没有启动,然后允许docker ps -a 查看存在但是没有up的容器。

  找到broker-3的容器id:,docker logs a6488cb653a1 。找打容器启动日志,发现关键错误信息。

 EndOfStreamException: Unable to read additional data from server sessionid 0x10000038e810001, 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:1290)

     堆栈信息报错意思就是和zookeeper连接有问题,很可能没启动,第一时间想到内存问题,因为docker安装在我电脑上就分配了2个g内存,运行docker stats。下面是内存分配情况。

  发现内存只剩470m,推断很大可能是内存问题。因为运行broker-2的内存占用差不多400多m。然后设置docker内存为4g,重新运行docker-compose的命令,容器正确启动。