KafkaのコンシューマのグループIDをどのように設定しますか?

Kafkaのconsumerのgroup.idパラメータは、同じconsumerグループに属する複数のconsumerを識別するために使用されます。Kafkaでは、各consumerグループは1つまたは複数のトピックのメッセージを消費でき、各トピックの各パーティションは、同じconsumerグループ内の1つのconsumerによってのみ消費できます。

次の手順でKafkaコンシューマーのgroup.idパラメータを設定できます:

  1. Kafkaコンシューマの設定オプション(例:) を格納するPropertiesオブジェクトを作成する。
  2. Properties props = new Properties();
  3. Propertiesオブジェクトでgroup.idパラメータの値を設定します。 例:
  4. props.put(“group.id”, “my-consumer-group”);
  5. なお、”my-consumer-group”は、実際のニーズに応じて、異なる消費グループを区別するためにカスタマイズできます。
  6. PropertiesオブジェクトをKafkaConsumerのコンストラクタに渡します。たとえば:
  7. KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
  8. KafkaConsumerオブジェクトを作成する際、このコンシューマがどのコンシューマグループに属するのか識別するために指定したgroup.idパラメータ値が使用されます。

一つのコンシューマグループ内のコンシューマは、コンシューマグループ内の各トピックの全てパーティションのメッセージを共有します。各コンシューマは、別々に割り当てられたパーティションから独立してメッセージを読み取ります。コンシューマグループ内のコンシューマ数がトピックパーティションの数より多い場合、余剰のコンシューマはアイドル状態となり、メッセージを消費しません。従って、コンシューマグループ数とトピックパーティション数の間は、各パーティションが一個のコンシューマにより消費できるよう、バランスを取る必要があります。

bannerAds