2016-12-29 76 views
1

在我的IDE中,我可以利用一個可以向外部kafka經紀人生成消息(使用Kafkaproducer)的彈簧引導應用程序。但是,一旦我將我的spring-boot應用程序託管在docker容器中,我的應用程序就不能再提交給代理。 以下是錯誤消息:從碼頭集裝箱向外部卡夫卡經紀人發佈消息

o.s.k.support.LoggingProducerListener: Exception thrown when sending a message with key='null' and payload='....' to topic Category: 
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. 
    org.springframework.kafka.core.KafkaProducerException: 
Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. 

我用來運行搬運工是:docker run -p 9001:9001 -d image_name其中9001是我的春天,引導端口,我能夠發佈到港口,只是一旦我的消息被公佈,它不會到達外部經紀人。 我認爲我有一個普遍的概念,即Docker容器生活在孤立的土地上,您必須打開/映射端口才能訪問它(如我的-p 9002:9002),但是它的工作方式與訪問相同從容器?如果是這樣,有人可以告訴我如何運行碼頭集裝箱以便能夠訪問外部經紀人(比方說經紀人的URL是「192.168.1.1:9000」)?我不認爲我現在能夠修改代理上的任何東西,但我的假設是,如果我可以通過我的IDE訪問,爲什麼不在docker中?感謝所有的幫助!

回答

1

這是由於我的IP轉發= 0,一旦打開,我可以做出去的請求。

相關問題