KafkaのコンシューマのグループIDをどのように設定しますか?
Kafkaのconsumerのgroup.idパラメータは、同じconsumerグループに属する複数のconsumerを識別するために使用されます。Kafkaでは、各consumerグループは1つまたは複数のトピックのメッセージを消費でき、各トピックの各パーティションは、同じconsumerグループ内の1つのconsumerによってのみ消費できます。
次の手順でKafkaコンシューマーのgroup.idパラメータを設定できます:
- Kafkaコンシューマの設定オプション(例:) を格納するPropertiesオブジェクトを作成する。
- Properties props = new Properties();
- Propertiesオブジェクトでgroup.idパラメータの値を設定します。 例:
- props.put(“group.id”, “my-consumer-group”);
- なお、”my-consumer-group”は、実際のニーズに応じて、異なる消費グループを区別するためにカスタマイズできます。
- PropertiesオブジェクトをKafkaConsumerのコンストラクタに渡します。たとえば:
- KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
- KafkaConsumerオブジェクトを作成する際、このコンシューマがどのコンシューマグループに属するのか識別するために指定したgroup.idパラメータ値が使用されます。
一つのコンシューマグループ内のコンシューマは、コンシューマグループ内の各トピックの全てパーティションのメッセージを共有します。各コンシューマは、別々に割り当てられたパーティションから独立してメッセージを読み取ります。コンシューマグループ内のコンシューマ数がトピックパーティションの数より多い場合、余剰のコンシューマはアイドル状態となり、メッセージを消費しません。従って、コンシューマグループ数とトピックパーティション数の間は、各パーティションが一個のコンシューマにより消費できるよう、バランスを取る必要があります。