簡體   English   中英

從另一台主機連接 Docker 內部的 Kafka

[英]Connecting Kafka inside Docker from another host

我已經在主機 A(192.168.1.200)的 docker 中構建了 Kafka 和 Zookeeper,並且已經設置了這些環境

KAFKA_ADVERTISED_LISTENERS=INSIDE://kafka-broker:9093,OUTSIDE://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS=INSIDE://kafka-broker:9093,OUTSIDE://kafka-broker:9092
KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE
KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181

然后當我嘗試從其他主機-B(IP 192.168.1.8)連接到引導服務器時,無法建立連接。 端口 9092 已經暴露在外部,我可以從主機 B 遠程登錄。

[root@node-B kafka]# ./bin/kafka-topics.sh --create --topic hehe --bootstrap-server 192.168.1.200:9092 --partitions 3
[2020-12-07 16:42:22,262] WARN [AdminClient clientId=adminclient-1] Connection to node 1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

但是當我嘗試從host-B連接到zookeeper服務器時,它也可以連接並創建主題

[root@node-B kafka]# ./bin/kafka-topics.sh -zookeeper 192.168.1.200:2181 --create --topic dummytopic --partitions 1 --replication-factor 1
Created topic dummytopic.

我還可以使用引導服務器從主機 A 創建主題

[root@node-A kafka] #./bin/kafka-topics.sh --bootstrap-server 192.168.1.200:9092 --create --topic testopic --partitions 1 --replication-factor 1
Created topic testopic.

有什么我錯過的配置嗎?

您正在連接到OUTSIDE偵聽器( --bootstrap-server 192.168.1.200:9092 ),它在您的KAFKA_ADVERTISED_LISTENERS中將返回其主機地址為localhost:9092 - 這是您在此錯誤中看到的內容,因為客戶端然后連接到返回的主機( localhost ,Kafka 代理未在其上運行):

Connection to node 1 (localhost/127.0.0.1:9092) could not be established.

您需要為拓撲正確配置偵聽器。 本文詳細介紹了所有細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM