【问题标题】:Docker swarm : org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignmentDocker swarm:org.apache.kafka.common.errors.TimeoutException:等待节点分配超时
【发布时间】:2019-12-06 14:14:46
【问题描述】:

我正在尝试将使用 kafka 的 java 服务器应用程序容器化。我观察到了这种行为,

案例一:作为单个容器运行使用桥接网络

在这种情况下,它运作良好。所以没问题。

案例 2:作为单一服务运行使用覆盖网络(Swarm 模式)

在这种情况下,我得到了org.apache.kafka.common.errors.TimeoutException,因为这个不成功的连接,

WARN [2019-12-06T14:05:44,668] RequestSendThread: warn(): [Controller-0-to-broker-0-send-thread]: Controller 0's connection to broker 10.255.3.64:10101 (id: 0 rack: null) was unsuccessful
java.net.SocketTimeoutException: Failed to connect within 30000 ms
        at kafka.controller.RequestSendThread.brokerReady(ControllerChannelManager.scala:270) [kafka_2.12-1.0.0.jar:?]
        at kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:223) [kafka_2.12-1.0.0.jar:?]
        at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:64) [kafka_2.12-1.0.0.jar:?]

我对kafka了解不多,无法理解overlay网络在桥接网络中运行良好时如何影响kafka进程?

编辑 1:

差不多发现问题了... 在docker swarm模式下,容器有两个ip地址,因为bridge和overlay有两个接口。 ip是endpoint:172.19.0.3, 10.255.3.65。

在尝试连接到容器时(从同一个容器内部),

Bridge I/F : 172.19.0.3 : 10101 - 可以连接。表示telent 172.19.0.3 10101 有效。 Overlay I/F :10.155.3.65 : 10101 - 无法连接到端口,但可以 ping 通。

kafka使用的虚拟ip10.155.3.65制作TimeoutException。

使用覆盖 IP 时无法连接到 localhost 端口(但可以 ping)。为什么会出现这种情况?

【问题讨论】:

  • 请显示您的代理和 docker 配置文件。例如,您在某处更改了端口,因为10101 不是 Kafka 或 Zookeeper
  • @cricket_007。我认为这不是配置错误。 bcoz 它在具有桥接接口的普通容器内工作。使用overlay 网络接口IP 时出现问题。一种网络环境问题...我已将我的问题更新为 Edit 1...
  • 1) 测试本地容器并不能证明网络连接正常。 2)您在哪里以及为什么设置端口10101? 3)你读过这个吗? rmoff.net/2018/08/02/kafka-listeners-explained
  • @cricket_007 我相信,你的问题一定有很多原因。在我的场景中,分配的默认覆盖网络不允许通信。 --attachable 解决了这个问题。

标签: java networking apache-kafka containers docker-swarm


【解决方案1】:

答案:

我的错。我使用了default 覆盖导致问题.. https://docs.docker.com/network/overlay/ .

创建了一个--attachable 自定义覆盖网络解决了这个问题。

docker network create -d overlay --attachable my-attachable-overlay

【讨论】:

    猜你喜欢
    • 2018-12-21
    • 2019-05-04
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多