当前位置: 首页 > 知识库问答 >
问题:

容器之间的通信连接失败

越安翔
2023-03-14
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
23dbed8536dc        dc62102ccd75        "/opt/startkafka.sh"     4 minutes ago       Up 4 minutes                                                         inspiring_nobel
8f89ce6a4b57        00088267fb34        "/opt/startzookeeper…"   7 minutes ago       Up 7 minutes        2888/tcp, 192.168.1.5:2181->2181/tcp, 3888/tcp   vigorous_zhukovsky
zookeeper_connect=localhost:2181

当我码头工人运行Kafka集装箱

[2018-07-15 01:31:58,369]信息打开到服务器本地主机/127.0.0.1:2181的套接字连接。将不尝试使用SASL(未知错误)(org.apache.zookeeper.clientcnxn)[2018-07-15 01:31:58,373]警告会话0x0服务器为空,意外错误,关闭套接字连接并试图重新连接(org.apache.zookeeper.clientcnxn)java.net.connectException:在sun.nio.ch.socketchannelimpl.checkconnect(本机方法)在sun.nio.ch.socketchannelimpl.finishconnect(socketchannelimpl.java:717)在.java:361)位于org.apache.zookeeper.clientcnxn$sendthread.run(Clientcnxn.java:1141)[2018-07-15 01:31:59,479]打开到服务器本地主机/127.0.0.1:2181的套接字连接的信息。将不尝试使用SASL(未知错误)(org.apache.zookeeper.clientcnxn)[2018-07-15 01:31:59,481]警告会话0x0服务器为空,意外错误,关闭套接字连接并试图重新连接(org.apache.zookeeper.clientcnxn)java.net.connectException:在sun.nio.ch.socketchannelimpl.checkconnect(本机方法)在sun.nio.ch.socketchannelimpl.finishconnect(socketchannelimpl.java:717)在.java:361)位于org.apache.zookeeper.clientcnxn$sendthread.run(clientcnxn.java:1141)

我知道kafka容器无法连接到zookeeper更改kafka配置zookeeper_connect=192.168.1.5:2181

[2018-07-15 01:35:40,833]建立到192.168.1.5/192.168.1.5:2181的信息套接字连接,启动会话(org.apache.zookeeper.clientcnxn)[2018-07-15 01:35:40,836]信息无法从服务器sessionid 0x0读取其他数据,可能服务器已关闭套接字,正在关闭套接字连接并试图重新连接(org.apache.zookeeper.clientcnxn)[2018-07-15 01:35:42,520]错误KafkaServer启动期间出现致命错误。准备关闭(kafka.server.kafkaserver)kafka.zookeeper.zookeePerClientTimeoutException:处于状态时等待连接超时:在kafka.zookeePer.zookeePer.zookeePerClient$$anonFun$kafka$zookeePerClient$$zookeePerClient$$waitintilConnected$1.在kafka.zookeePer.zookeePerClient.zookeePerClient$$waitintilConnected$1处应用ZookeePerClient$$AnonFun$Kafka$ZookeeperClient$$WaitIntilConnected$1.应用(ZookeePerClient.Scala:221)在Kafka.utils.coreutils.inlock(COREUTILS.Scala:250)在Kafka.ZookeePer.ZookeePerClient.Kafka$ZookeePerClient.Kafka$ZookeePerClient.Scala:221)在Kafka.ZookeePerClient.Scala:221)在38)在kafka.server.kafkaserver.kafka$server$kafkaserver$$CreatezkClient$1(kafkaserver.scala:345)在kafka.server.kafkaserver.initzkClient(kafkaserver.scala:369)在kafka.server.kafkaserver.startup(kafkaserver.scala:202)在kafka.server.kafkaserverstarttable.startup(kafkaserverstarttable.scala:38)在kafka.kafka$.main(kafka.scala.main(kafka.scala:92)在kafka.kafka.scala)[2018-07-15 01:35:42,523]信息关闭(kafka.server.kafkaserver[2018-07-15 01:35:42,525]ka.server.kafkaserver$$anonfun$shutdown$5.在kafka.utils.coreutils$.scala:569)在kafka.server.kafkaserver.shutdown(kafkaserver.scala:85)在kafka.server.kafkaserver.startup(kafkaserver.scala:569)在kafka.server.kafkaserver.startup(kafkaserver.scala:326)在kafka.server.kafkaserver.scala:38)在afka.main(kafka.scala)[2018-07-15 01:35:42,528]信息关闭完成(kafka.server.kafkaserver)[2018-07-15 01:35:42,528]退出Kafka时出错。(kafka.server.kafkaserverstartable)[2018-07-15 01:35:42,530]信息关闭(kafka.server.kafkaserver)

我不知道如何让kafka容器连接到zookeeper容器,或者测试容器之间的连接性。谢谢你的任何建议!

共有1个答案

漆雕育
2023-03-14

与本例一样,每个kafka节点应该在运行时(在docker运行时)引用zookpeepr集群节点的IP:

docker run -p 9092:9092 \
  -e ZOOKEEPER_CONNECT=10.0.0.1:2181,10.0.0.2:2181,10.0.0.3:2181 \
  -e KAFKA_HOST=host_kafka1 -e KAFKA_PORT=9092 -e BROKER_ID=0 \
  --name kafka1 jeygeethan/kafka-cluster

大意在此表达:

另外,如果您有一个名为ZK-01的外部zookeeper服务器,那么您还需要传递zookeeper.connect

docker run --tty --interactive --rm \
  --name kafka-01 \
  --publish 9092:9092 \
  --env SERVER__ZOOKEEPER_CONNECT=zk-01 \  <=============
  --env SERVER__BROKER_ID=1 \
  --env SERVER__COMPRESSION_TYPE=gzip \
  --link zk-01 \
  christiangda/kafka bin/kafka-server-start.sh config/server.properties
 类似资料:
  • 问题内容: 两个单独的Docker容器是否可以通过ZMQ IPC套接字进行通信?如果是这样,如何实现? 例如: Docker容器1 执行一个应用程序,该应用程序创建ZMQ响应套接字并绑定到“ ipc:// tmp / service_name”。 Docker Container#2 执行一个应用程序,该应用程序创建一个ZMQ Request套接字并连接到“ ipc:// tmp / servic

  • 当我的java spring应用程序尝试连接到数据库时,我会得到以下信息: spring应用程序中的连接url如下所示: 最后,docker图像-A: 你知道问题是什么吗?谢谢你!

  • php STOMP连接和运行在不同服务器上的ActiveMQ代理之间的通信出现问题。布局如下; 服务器B有一个AMQ代理,运行以下transportConnector设置; 服务器B还有一个Java客户机,充当许多队列的使用者。 问题是,当我们在ServerA上运行脚本时,它会失败,出现以下错误; 致命错误:未捕获的异常“stompexception”,消息为“服务器没有响应” 在ServerB上

  • 问题内容: 我正在macOS 10.12上使用Docker 1.12.5,并且正在使用我设置一个开发环境,其中包含一个 应用程序 映像和一个共享的 Redis 映像,其中包含一些预先填充的配置变量。 即使遵循了一些教程(并阅读了Mac上不可用的知识),我仍在努力连接两个容器。 我使用以下命令开始我的图像: 在我的图像中,我有: 而 从我的Mac 我可以通过连接成功命令没有问题。 但是,当我开始一个

  • 如果我知道一个Docker容器的IP地址,我就可以很容易地从另一个容器与它通信,但前提是它们在同一个网络中。 我的问题是,我如何与来自另一个网络的容器通信,为什么我不能访问同一台机器上的本地IP?我对网络解释感兴趣,为什么我可以从172.19.0.2访问172.19-0.1,但无法从172.20.0.1访问172.20-0.2。 让一个网络中的docker容器与另一个网络中的Docker容器进行通

  • 问题内容: 我正在尝试设置一个docker- compose文件,该文件旨在用Supervisor替换运行多个进程(RQ worker,RQ仪表板和Flask应用程序)的单个Docker容器解决方案。 主机系统是Debian 8 Linux,我的样子如下(我删除了所有其他条目以减少错误源): “ rq-worker1”是Python RQ工作者,尝试通过本地主机和端口6379连接到Redis,但无