コンシューマーグループ
パブリッシュ / サブスクライブモデルを使用すると、共有トピックを介してアプリケーションを簡単に接続できますが、特定のアプリケーションの複数のインスタンスを作成してスケールアップする機能も同様に重要です。そうすると、アプリケーションのさまざまなインスタンスが競合するコンシューマー関連に配置され、インスタンスの 1 つだけが特定のメッセージを処理することが期待されます。
Spring Cloud Stream は、コンシューマーグループの概念を通じてこの動作をモデル化します。(Spring Cloud Stream コンシューマーグループは、Kafka コンシューマーグループに類似しており、それに触発されています)各コンシューマーバインディングは、spring.cloud.stream.bindings.<bindingName>.group
プロパティを使用してグループ名を指定できます。次の図に示すコンシューマーの場合、このプロパティは spring.cloud.stream.bindings.<bindingName>.group=hdfsWrite
または spring.cloud.stream.bindings.<bindingName>.group=average
として設定されます。
特定の宛先にサブスクライブするすべてのグループは、公開されたデータのコピーを受け取りますが、各グループの 1 人のメンバーだけがその宛先から特定のメッセージを受け取ります。デフォルトでは、グループが指定されていない場合、Spring Cloud Stream は、他のすべてのコンシューマーグループとパブリッシュ / サブスクライブ関連にある匿名の独立した単一メンバーのコンシューマーグループにアプリケーションを割り当てます。