Java Docker swarm:org.apache.kafka.common.errors.TimeoutException:等待节点分配时超时
我正在尝试将一个使用kafka的java服务器应用程序容器化。我观察到这种行为 案例1:作为单个容器运行时使用网桥网络 在这种情况下,它工作得很好。所以没问题 案例2:作为单一服务运行使用覆盖网络(群集模式) 在本例中,由于这个不成功的连接,我得到了Java Docker swarm:org.apache.kafka.common.errors.TimeoutException:等待节点分配时超时,java,networking,apache-kafka,containers,docker-swarm,Java,Networking,Apache Kafka,Containers,Docker Swarm,我正在尝试将一个使用kafka的java服务器应用程序容器化。我观察到这种行为 案例1:作为单个容器运行时使用网桥网络 在这种情况下,它工作得很好。所以没问题 案例2:作为单一服务运行使用覆盖网络(群集模式) 在本例中,由于这个不成功的连接,我得到了org.apache.kafka.common.errors.TimeoutException WARN [2019-12-06T14:05:44,668] RequestSendThread: warn(): [Controller-0-to-br
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:?]
我对卡夫卡知之甚少,也无法理解重叠网络在桥接网络中运行良好时如何影响卡夫卡过程
编辑1:
几乎发现了问题。。。在docker swarm模式下,由于两个接口网桥
和覆盖
,容器具有两个ip地址。IP是端点:172.19.0.3、10.255.3.65
尝试连接到容器时(从同一容器内部)
桥接器I/F:172.19.0.3:10101
-可以连接。指电信172.19.0.3 10101工程。
覆盖I/F:10.155.3.65:10101
-无法连接到端口,但可以ping
卡夫卡使用的虚拟ip10.155.3.65
,用于进行TimeoutException
使用覆盖ip时无法连接到本地主机端口(但可以ping)。为什么会出现这种情况?回答:
我的错。我使用了default
overlay使问题
创建了一个可附加的自定义覆盖网络解决了这个问题
docker network create -d overlay --attachable my-attachable-overlay
请显示您的代理和docker配置文件。例如,您更改了某个端口,因为
10101
不是卡夫卡或Zookeeper@cricket_007. 我不认为这是配置错误。bcoz它在具有桥接接口的普通容器中工作。当它使用覆盖
网络接口ip时出现问题。一种网络环境问题。。。我用我最新的观察结果更新了我的问题,编辑1…1)测试一个本地容器并不能证明网络连接正常工作。2) 您在哪里设置端口10101,为什么设置端口10101?3) 你读过这个吗@我相信,你的问题一定有很多原因。在我的场景中,指定的默认覆盖网络不允许通信<代码>--attachable解决了此问题。