2016-08-02 69 views
4

我在端口5000上的docker容器中運行了一項休息服務,該服務用於通過kafka主題生成運行Docker容器的消息。無法在docker中運行的服務產生消息給kafka

我已經配置我的生產者客戶端與以下特性: -

bootstrap.servers=localhost:9093 

我也開始了我的包含下面的命令: -

docker run -d -p 127.0.0.1:5000:5000 <contained id> 

,我也做了以下配置做廣告kafka主機和端口

advertised.host.name=localhost 
advertised.port=9093 

儘管所有的配置,當我嘗試刺激然後我得到下面的錯誤: -

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. 

有人可以請指出實際問題是哪裏?

回答

3

在現實生活中,advertised.host.name不應該是localhost

就你的情況而言,你在橋聯網模式下運行你的Docker容器,所以它不能通過localhost到達代理,因爲它將指向容器網絡,而不是主機。

爲了使它工作,你應該設置advertised.host.namebootstrap.serversifconfig docker0返回的IP地址(可以在你的情況下,可以不docker0,但你明白了吧)。

或者,您可能會用--net=host運行您的容器,但我認爲您最好正確配置廣告主機名稱。