Simple Message Queue (SMQ、旧 MNS) のトピックは、メッセージを格納するコンテナです。パブリッシャーはトピックにメッセージを送信し、トピックはアクティブな各サブスクリプションにメッセージのコピーを配信します。これは、すべてのサブスクライバーがすべてのメッセージを受信するメーリングリストに似ています。
パブリッシャーとサブスクライバーは独立して動作します。パブリッシャーはサブスクライバーを待たず、各サブスクライバーは自身のペースでメッセージを処理します。
SMQ のトピックは、キュー、HTTP サーバー、Short Message Service (SMS)、Direct Mail、Mobile Push の 5 種類のエンドポイントタイプをサポートしています。各エンドポイントは、公開されたすべてのメッセージのコピーを個別に受信し、処理します。
トピックの利用シーン
単一のメッセージを複数のコンシューマーに到達させる必要がある場合は、トピックを使用します。一般的なシナリオは次のとおりです。
| シナリオ | 説明 |
|---|---|
| イベントブロードキャスト | 注文が行われたとき、またはリソースのステータスが変更されたときに、複数のダウンストリームサービスに通知します。 |
| ファンアウト処理 | 単一のイベントを、処理用のキュー、ロギング用の HTTP サーバー、アラート機能用の SMS エンドポイントに一度にルーティングします。 |
| 選択的配信 | フィルタータグを付加することで、各サブスクライバーは必要なメッセージのみを受信できます。 |
各メッセージに必要なコンシューマーが 1 人だけの場合は、代わりに キュー を使用します。
機能
At-least-once 配信
トピックに公開されたすべてのメッセージは、メッセージが保持期間内にあり、最大配信試行回数を超えていない限り、各サブスクライバーに少なくとも 1 回は到達します。
複数のサブスクライバータイプ
単一のトピックで、異なるエンドポイントタイプに同時にメッセージを配信できます。
| エンドポイントタイプ | ユースケース |
|---|---|
| キュー | 非同期処理のためにメッセージをバッファリングします。 |
| HTTP サーバー | Web サーバーにメッセージをプッシュします。 |
| SMS | 携帯電話番号にテキスト通知を送信します。 |
| Direct Mail | メール通知を送信します。 |
| Mobile Push | モバイルアプリにプッシュ通知を配信します。 |
メッセージフィルタリング
メッセージを公開するときにタグを割り当てます。一致するフィルター ルールを持つサブスクライバーは、タグ付けされたメッセージのみを受信するため、不要な処理が削減されます。
各メッセージは、最大 16 文字のフィルタータグを 1 つサポートします。
トピックのプロパティ
| プロパティ | 説明 | 有効な値 |
|---|---|---|
| トピック名 | クラスター内のトピックのグローバルに一意な識別子。 | 最大 120 文字。英字、数字、ハイフン (-)。先頭は英字である必要があります。 |
| 最大メッセージサイズ | メッセージ本文の最大サイズ (KB)。 | 1~64。デフォルト:64。 |
| ロギング | 有効にすると、SMQ は指定されたロギングバケットに操作ログをプッシュします。これらのログを使用して、メッセージトレース、遅延、その他の診断情報を表示できます。詳細については、「ログ管理」をご参照ください。 | true または false。 |
制限事項
| 項目 | 制限 | 超過した場合 |
|---|---|---|
| トピック名の長さ | 120 文字 | トピックの作成に失敗します。 |
| リージョンあたりのトピック数 | 1,000 | 追加をリクエストするには、クォータセンターを開き、[単一リージョン内の最大トピック数] の引き上げを申請してください。詳細については、「クォータ引き上げの申請を提出する」をご参照ください。 |
| メッセージサイズ | 64 KB | メッセージは破棄されます。 |
| トピックあたりのサブスクリプション数 | 100 | -- |
| メッセージ保持期間 | 1 日 | 期限切れのメッセージは自動的に削除されます。ワークロードに基づいてこの値を設定してください。 |
| メッセージあたりのフィルタータグ数 | 1 | 各タグは最大 16 文字です。 |
| キューからトピックへのサブスクリプション | サブスクライブするキューのサイズは、トピックのサイズ以上である必要があります。 | サブスクリプションの作成に失敗します。 |