我是 KAFKA 的新手,我知道在堆棧溢出時已多次問過這個問題,但沒有一個解決方案對我有用,所以在這里我想再次問同樣的問題來試試運氣。我已經在 Centos7 VM 上下載并安裝了 KFKA。VM 在我的筆記本電腦上。當我從命令行運行 KAFKA 生產者和消費者時,它工作正常。下一步,我想創建一個 Java Producer,但它總是超時并出現以下異常。 Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. at org.apache.kafka.clients.producer.KafkaProducer$FutureFailure.<init>(KafkaProducer.java:1186) at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:880) at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:803) at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:690) at com.soft.teradata.KafkaProducerExample.runProducer(KafkaProducerExample.java:40) at com.soft.teradata.KafkaProducerExample.main(KafkaProducerExample.java:55)Caused by: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.對于 bootstrap.server,我什至嘗試過以下操作:props.put("bootstrap.servers", "PLAINTEXT://192.168.xxx.xxx:9092");請注意,我正在筆記本電腦上從 Eclipse 執行 java 代碼,而 KAFKA 安裝在筆記本電腦的 CENTOS7 VM 上。192.168.xxx.xxx 是 CENTOS7 虛擬機的 IP 地址。我注意到我的筆記本電腦無法訪問 192.168.xxx.xxx:9092 (telnet 192.168.xxx.xxx 9092)。我將端口添加到防火墻,但仍然沒有成功。firewall-cmd --zone=public --add-port=9092/tcp --permanent firewall-cmd --reload firewall-cmd --list-portsKAFKA 的版本是 2.12-2.0.0,我已經將以下 jars 添加到我的 Eclipse Classpath 中:kafka-clients-2.0.0.jarlz4-java-1.4.1.jarslf4j-api-1.7.25.jarsnappy-java-1.1.7.1.jar非常感謝您提前提供幫助:)Regadrs,DIRSHAH。
3 回答

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
此錯誤可能表明該主題不存在,因此您可能需要仔細檢查您的 topicName = "Hello-Kafka"。
雖然這不是一個深刻的答案,但它似乎是一個常見問題,另見https://github.com/dpkp/kafka-python/issues/607

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
我遇到了同樣的問題。您需要宣傳 Kafka 代理的主機名/IP 以便可以從 Kafka Producer pc 訪問。
kafka-server-start.sh config/server.properties --override advertised.listeners=PLAINTEXT://<accessible-hostname>:9092

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
同樣的問題,你會發現有些端口可以工作,有些則不行。
只需將其更改為 19092 即可,因為使用 15672 的 rabbitMQ 效果很好,我想原因是 OSX 占用了一些端口
添加回答
舉報
0/150
提交
取消