ApsaraMQ for Kafka は、Apache Kafka をベースに構築されたフルマネージドサービスです。以下のセクションでは、クラスターアーキテクチャとパブリッシュ/サブスクライブモデルについて説明します。
クラスターアーキテクチャ
ApsaraMQ for Kafka クラスターは、プロデューサー、ブローカー、ZooKeeper、コンシューマーグループの 4 つのコンポーネントで構成されます。
ApsaraMQ for Kafka のアーキテクチャ
プロデューサー
プロデューサーは、クラスター内のブローカーにメッセージを送信します。メッセージには通常、ページビューイベント、サーバーログ、CPU 使用率やメモリ使用量などのシステムリソース情報といったデータが含まれます。
ブローカー
ブローカーは、メッセージを格納し、提供するサーバーです。ブローカーは水平にスケールアウトします。クラスターにブローカーを追加すると、スループットが向上します。
コンシューマーグループ
コンシューマーグループ (ApsaraMQ for Kafka コンソールでは「グループ」と表記) は、ブローカーからメッセージをプルし、サブスクライブしているトピックのデータを消費します。
ZooKeeper
ZooKeeper はクラスターを調整します。クラスターの構成を管理し、リーダーパーティションを選出し、コンシューマーグループのメンバーシップが変更されたときにリバランスを行います。
パブリッシュ/サブスクライブモデル
ApsaraMQ for Kafka は、パブリッシュ/サブスクライブモデルを使用します。プロデューサーはトピックにメッセージをパブリッシュし、コンシューマーグループはそれらのトピックをサブスクライブしてメッセージを消費します。
ApsaraMQ for Kafka のパブリッシュ/サブスクライブモデル
トピックとコンシューマーグループは多対多の関係にあります:
1 つのコンシューマーグループが複数のトピックをサブスクライブできます。
1 つのトピックが複数のコンシューマーグループによって消費されることがあります。
コンシューマーグループ内では、サブスクライブしているトピックからの各メッセージは、グループ内の 1 つのコンシューマーによってのみ消費されます。