web-dev-qa-db-ja.com

Kafkaリーダー選出はいつ行われますか?

Kafka High Level Producerはいつ、どのくらいの頻度でリーダーを選出しますか?各メッセージを送信する前に選出しますか、それとも接続の作成時に1回だけ選出しますか?

8
Marut Singh

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

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

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

8