2017-03-31 14 views
4

カフカハイレベルプロデューサーがリーダーを選ぶ時期と頻度は? 各メッセージを送信する前に、または接続の作成時に1回だけ行うのですか?カフカリーダー選挙はいつ行われますか?

+0

プロデューサーはリーダーを選ぶわけではありません。リーダーのコンセプトはありません。あなたは何を意味しているのですか?ブローカーと消費者にはリーダー概念があります。 –

+0

プロデューサはクラスタ内のブローカに公開する必要があります。それで、どのようにカフカのどのインスタンスをデータをプッシュするかをプロデューサが決定しますか? –

+2

日付を書き込むトピックとパーティションによって異なります。各トピックパーティションには、そのリーダーであるブローカーが1つあります。書き込みはリーダーにのみ行われます。したがって、作成するすべてのパーティションが異なるブローカでホストされている場合、プロデューサはクラスタ内のすべてのブローカに書き込む可能性があります。 –

答えて

2

各ブローカーには、新しいリーダーが選出されるたびに、またはパーティション数が変更されたときに動物園キーパーによって最新の状態に保たれるトピック(およびパーティション)とそのリーダーのリストに関する情報があります。

したがって、プロデューサがブローカの1つに電話をかけると、この情報リストで応答します。プロデューサがこの情報を受け取ると、プロデューサはこれをキャッシュし、それを使用してリーダーに接続します。次回は、その特定のトピック(およびパーティション)にメッセージを送信したいときに、このキャッシュされた情報を使用します。

リーダーが1人しかいないと仮定し、そのトピック/パーティションのデュオのレプリカがなく、潰れてしまったとします。この場合、リーダーに接続しようとすると失敗します。このトピックのリーダーがあるかどうかを確認するためにキャッシュされている他のブローカーリストからリーダーをフェッチしようとします。何も見つからないので、それは同じリーダー(それは死んでいる)にヒットしようとし、再試行の最大数に達した後、それは例外をスローするでしょう!

関連する問題