有許多相似類型的查詢上的計算器,但沒有完全匹配,我看到了問題的時候。集裝箱卡夫卡客戶端產生的錯誤信息給主機服務器卡夫卡
我在我的服務器上有一個zookeeper/kafka安裝程序,它可以很好地工作。人們可以產生
bin/kafka-console-producer.sh --broker-list 192.168.2.80:9092 --topic test
和消費
bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.80:9092 --topic test --from-beginning
本地的Linux操作系統Ubuntu 16.04服務器上。
從Docker容器 - 也運行Ubuntu 16.04 - 我想生產和消費。容器的Kafka代碼是從服務器上覆制的。 首先,我可以從容器中創建一個新的話題
bin/kafka-topics.sh --create --zookeeper 192.168.2.80:2181 --replication-factor 1 --partitions 1 --topic test2
,然後再列出它
bin/kafka-topics.sh --list --zookeeper 192.168.2.80:2181
然而,當我試圖產生新的消息,使用上述(kafka-console-producer.sh )命令失敗,並顯示以下消息:
[2017-06-05 13:59:05,317] ERROR Error when sending message to topic test2 with key: null, value: 2 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for test2-0: 1526 ms has passed since batch creation plus linger time
緊接在輸入消息文本後按回車。
在同一個主機上運行Docker容器似乎有點奇怪,但是一旦這個工作正常,我將把容器移動到一個單獨的主機進行生產。
我卡夫卡server.properties文件:
listeners=PLAINTEXT://0.0.0.0:9092
卡夫卡版本:
2.12-0.10.2.1
泊塢版本:
Docker version 1.12.6, build 78d1802
如果您在主機上使用mac和docker-machine,您必須執行端口轉發: docker-machine ssh default -L 9092:localhost:9092 -L 2181:localhost:2181 – Andy
以及Kafka的圖像你用?這個爲我工作:https://hub.docker.com/r/wurstmeister/kafka/ – Andy
謝謝安迪, 我想保持簡單的事情。所以我剛剛使用此鏈接下載它: wget ftp://apache.cs.utah.edu/apache.org/kafka/0.10.2.1/kafka_2.12-0.10.2.1.tgz 使用焦油它然後一次性解包動物園管理員和卡夫卡。它似乎在我的主Ubuntu服務器上運行良好。 然後我在我的Ubuntu裏做了同樣的事情:最新的docker鏡像。但是,我在容器中運行的所有內容都是kafka bin目錄中的命令。我還沒有開始動物園管理員或卡夫卡的守護進程。 –