コンシューマーグループとは?
こんしゅーまーぐるーぷ
コンシューマーグループとは、Apache Kafkaでメッセージを共同消費する複数のコンシューマーをまとめたグループで、パーティションを分担して並列処理を実現する仕組みです。
コンシューマーグループ(Consumer Group)は、Apache Kafkaにおいて同一のグループIDを持つ複数のコンシューマーをまとめた論理的な単位です。同じトピックを複数のコンシューマーで効率よく消費するための仕組みで、Kafkaのスケーラビリティを支える中心的な概念です。
仕組みの核心は、パーティションとコンシューマーの1対1以上の対応関係にあります。1つのパーティションは同一コンシューマーグループ内の1つのコンシューマーにしか割り当てられないため、重複処理を防ぎながら並列消費が実現します。
- コンシューマー数 < パーティション数:一部コンシューマーが複数パーティションを担当
- コンシューマー数 = パーティション数:最も効率的な並列処理
- コンシューマー数 > パーティション数:余剰コンシューマーはアイドル状態になる
各コンシューマーグループは独立したオフセット(読み取り位置)を持ちます。そのため、異なるグループが同じトピックを購読しても互いに影響しません。これにより、同じメッセージをログ保存用・通知用・分析用など複数の用途に並行して使うことができます。
コンシューマーがグループに参加または離脱した際は、リバランス(Rebalance)と呼ばれるパーティションの再割り当てが発生します。Kafkaはこの管理をGroupCoordinatorが担い、フォールトトレランスを自動的に維持します。
使い方・例文
「注文イベントを受け取るトピックに、在庫更新用と通知送信用の2つのコンシューマーグループを設定し、それぞれ独立して処理を行う構成にした」という場面で使われます。
この用語をシェア
最終更新: