AWSでKafkaブローカクラスタに関する質問がありました。今はAWS ELBがクラスターの前に座っていますが、自分のプロデューサーまたはコンシューマーの "bootstrap.servers"プロパティーをELBの "A"レコード(および正しいポート番号)に設定すると、プロデューサーとコンシューマーの両方が消費者はそれぞれメッセージを生成し消費することができない。私はブローカー上のすべてのSSLを無効にしてPLAINTEXT 9092ポートを介して接続しています。私のELBはポート1234を9092に転送します。例えば、プロデューサのConfigsプロパティでは、...Kafkaはブローカクラスタの前でELBをサポートしていますか?
bootstrap.servers =(ELBの "A" レコード):1234
詳細情報://(EC2:
- マイELBのプロトコルは、TCP/TCPである
- ブローカーに私の "advertised.listeners" プロパティはPLAINTEXTあります-private-ip):9092
ELBの後ろにカフカを運んでいる人はいますか?もしそうなら、私を助けてください!
私はまだ少し混乱しています。 ELBがプライベートIPを介してそのインスタンスに話をしないので、広告されたリスナーをプライベートIPにしたいのですか? ec2の公開IPと非公開IPの両方を試しましたが、どちらも問題はありません。 Javaのためにkafkaクライアントライブラリを使用しています。 – Mattnv92
Kafkaを実行しているEC2インスタンスは、単一のインターフェイスでリッスンできますが、パブリックIPとプライベートIPの両方を対象とするトラフィックを受け入れることができます。 ELBがクラスタに関するメタデータを取得するための最初のリクエストにのみ使用されていることです。その後、クライアントは各トピックパーティションのリーダーブローカーと直接話すことができる必要があります。 ELBを使用してKafkaクラスタを公開するには、各ブローカの 'advertised.listeners'も公開されていることを確認する必要があります。 –
私はとても馬鹿だと感じます。実際には動作していましたが、ELBはヘルスチェックが失敗したためにインスタンスが「稼働中ではない」と報告していました。 "pingable"ではないブローカーにデフォルトでポート80を指していました。そこで、ELBはブローカーのいずれにもトラフィックをルーティングしませんでした。私たちはELBにブローカーのZookeeperポートをpingしています。それは愚かなものでなければならないことを知っていた:p。助けてくれてありがとう!それは間違いなくカフカがどのように働いているかを明らかにしました、そして、私は将来他の人を助けるでしょう! – Mattnv92