web-dev-qa-db-ja.com

Kafkaの消費者グループコーディネーターと消費者グループリーダーの違いは何ですか?

Kafka Consumer Group Coordinators and Consumer Group Leaders ...への参照が表示されます...

  1. 違いはなんですか?

  2. グループ管理を2つの異なる責任のセットに分離することの利点は何ですか?

21
Jeff Widman

消費者グループのコーディネーターはブローカーの1人であり、グループリーダーは消費者グループの消費者の1人です。

グループコーディネーターは、コンシューマーグループのすべてのコンシューマーからハートビート(またはメッセージのポーリング)を受信するブローカーの1つにすぎません。すべての消費者グループにはグループコーディネーターがいます。コンシューマーがハートビートの送信を停止すると、コーディネーターはリバランスをトリガーします。

コンシューマーがコンシューマーグループに参加する場合、グループのコーディネーターにJoinGroupリクエストを送信します。グループに参加した最初の消費者がグループリーダーになります。リーダーは、グループコーディネーターからグループ内のすべてのコンシューマーのリストを受信し(これには、ハートビートを最近送信したため、生きていると見なされるすべてのコンシューマーが含まれます)、各コンシューマーにパーティションのサブセットを割り当てる責任があります。 PartitionAssignorインターフェースの実装を使用して、どのコンシューマーがどのパーティションを処理するかを決定します。パーティションの割り当てを決定した後、コンシューマーリーダーは割り当てのリストをGroupCoordinatorに送信し、GroupCoordinatorはこの情報をすべてのコンシューマーに送信します。各コンシューマーは自分の割り当てのみを表示します。リーダーは、グループ内のコンシューマーの完全なリストとその割り当てを保持する唯一のクライアントプロセスです。このプロセスは、リバランスが発生するたびに繰り返されます。

34
Yogesh Gupta