我有一個關於AWS上的Kafka代理集羣的問題。現在有一個AWS ELB坐在集羣前面,但是當我將生產者或消費者的「bootstrap.servers」屬性設置爲我的ELB的「A」記錄(和正確的端口號)時,生產者和消費者不能分別產生和使用消息。我已經關閉了我的經紀人的所有SSL,並通過PLAINTEXT 9092端口連接,我的ELB將端口1234轉發到9092.因此,在我的Producer Configs屬性中,例如,我將擁有...卡夫卡是否支持經紀集羣前的ELB?
bootstrap.servers =( 「A」 ELB的記錄):1234
更多信息:
- 我ELB的協議是TCP/TCP
- 我的經紀人 「advertised.listeners」 屬性是PLAINTEXT://(EC2 -private-ip):9092
有沒有人在ELB後面跑過卡夫卡?如果是這樣,請幫助我!
我還是有點困惑。 ELB不通過專用IP與其實例通話,所以我不希望advertised.listeners成爲私有IP?我已經嘗試了ec2s的公共和私人IP地址,但它們都無法工作。順便說一句,我正在使用Java的kafka客戶端庫。 – Mattnv92
運行Kafka的EC2實例可以在單個接口上偵聽,但能夠接受針對公共和私有IP的流量。我試圖得到的是,ELB僅*用於獲取關於集羣的元數據的初始請求。之後,客戶端需要能夠直接與每個主題分區的領導代理交談。如果您試圖使用ELB將卡夫卡羣集公開爲可用,您需要確保每個代理的'advertised.listeners'也可以公開訪問。 –
我覺得很愚蠢。所以它實際上是在工作,但ELB報告說實例「無法使用」,因爲健康檢查失敗。它在默認情況下指向80端口,它不是「可以ping通」的。所以ELB並沒有將流量路由到任何經紀人。我們有ELB現在在我們的經紀人上ping了Zookeeper端口,它工作得很好!知道它必須是愚蠢的:p。謝謝您的幫助!它肯定揭示了卡夫卡的工作原理,並且我相信在將來會幫助其他人! – Mattnv92