すべてのプロダクト
Search
ドキュメントセンター

Simple Message Queue (formerly MNS):SMQ とは

最終更新日:Nov 12, 2025

Alibaba Cloud Simple Message Queue (SMQ、旧 MNS) は、スケーラビリティ、高効率、信頼性、セキュリティ、および可用性を実現するために設計された分散メッセージングサービスです。SMQ を使用すると、開発者はアプリケーション内の分散コンポーネント間でデータと通知を転送でき、疎結合システムの構築に役立ちます。キューベースと Topic ベースの両方のメッセージングモデルをサポートしています。

アクセス方法

SMQ は、インターネットアクセスと Virtual Private Cloud (VPC) アクセスの両方をサポートしています。VPC を使用する場合、CIDR ブロック、ルートテーブル、ゲートウェイを設定し、VPC 内の Elastic Compute Service (ECS)、ApsaraDB RDS、Server Load Balancer (SLB) などの Alibaba Cloud リソースにアクセスできます。

キューベースのメッセージングモデル

キューベースのメッセージングモデルは、信頼性の高い同時メッセージ消費を提供します。このモデルでは、キュー内の各メッセージは 1 つのクライアントのみが消費できます。

SMQ キューは回転寿司レストランに例えることができます。シェフ (プロデューサー) が寿司 (メッセージ) を準備し、コンベアベルトに乗せます。各皿 (メッセージ) は一意であり、顧客 (コンシューマー) はベルトから好みの寿司を選んで消費します。

キューベースのメッセージフロー

次の図、キューベースのメッセージフローは、キューベースのメッセージングプロセスを示しています。このフローでは、プロデューサーがキューにメッセージを送信し、コンシューマーがキューからメッセージを取得します。

図 1. キューベースのメッセージフローqueuemodel

キューベースのメッセージングモデルの特徴

  • 複数のキューモード

    スタンダードキューと遅延キューの両方がサポートされています。さまざまなビジネス要件に合わせてキューパラメーターをカスタマイズします。

  • 同時アクセスリクエスト

    SMQ キューは、複数のプロデューサーとコンシューマーからの多数の同時リクエストを効率的に処理します。メッセージがキューからプルされると、指定された期間内は再度取得できません。ワークロードに基づいて同時実行設定を柔軟に調整できます。

  • 保証されたメッセージ配信

    SMQ は、キュー内の各メッセージがその有効期間中に少なくとも 1 回消費されることを保証します。SMQ は Alibaba Cloud アカウントシステムと統合してユーザー間のリソースを分離し、承認されたエンティティのみが SMQ キュー内のメッセージにアクセスできるようにします。

  • ログ管理

    各メッセージの詳細なログを表示できます。これには、メッセージがそのライフサイクルを通じて送信、受信、または削除されたときに生成されたすべてのレコードが含まれます。詳細については、「ログ管理」をご参照ください。

  • Cloud Monitor

    Cloud Monitor コンソールでキュー情報を表示し、アラートルールをカスタマイズします。Cloud Monitor は予期しない問題を通知します。詳細については、「Cloud Monitor」をご参照ください。

Topic ベースのメッセージングモデル

Topic ベースのメッセージングモデルは、1 対多のパブリッシュ/サブスクライブメッセージングをサポートします。SMQ Topic を使用すると、単一のパブリッシャーが複数のサブスクライバーにメッセージを送信でき、メッセージは複数のメソッドを使用して配信できます。

Topic は、複数の顧客がサブスクライブする新聞に例えることができます。新しい号が発行されると、サブスクライバー (郵便局のパートナーを含む) は、次のような受け取り方法を選択できます。

  • 郵便配達員に新聞を自宅などの特定の住所に直接配達してもらう。

  • 近くのニューススタンドで新聞を自分で受け取る。配達員はまず新聞をまとめてニューススタンドに配達します。

Topic ベースのメッセージフロー

Topic ベースのメッセージフローに示すように、

  • Topic には、異なるキューで指定された複数のサブスクリプションがあります。

  • メッセージが Topic に公開されると、メッセージはサブスクリプションで指定されたキューエンドポイントにプッシュされます。

  • サブスクリプションはメッセージフィルタリングをサポートしています。サブスクリプションにタグを指定してメッセージをフィルターできます。

    • サブスクリプションにタグを指定しない場合、メッセージタグを指定したかどうかに関係なく、メッセージは指定されたキューにプッシュされます。

    • サブスクリプションにタグを指定した場合、そのタグを持つメッセージのみが指定されたキューにプッシュされます。

図 2. Topic ベースのメッセージフローtopicmodel

Topic ベースのメッセージングモデルの特徴

  • 通知メッセージ

    • SMQ サーバーは、指定されたキューにメッセージをプッシュします。これにより、クライアントの不要なリクエストポーリングとリソース消費がなくなります。リソース使用量を最大化して、ビジネスニーズを満たすことができます。他のメッセージサービスクライアントに依存する必要はありません。これにより、余分なコードの導入によるシステムの不安定化を防ぎます。詳細については、「エンドポイントに送信されるリクエストに署名する」および「Topic の管理」をご参照ください。

    • ネットワークやその他の理由でコールバック URL が利用できない場合は、SMQ キューにメッセージをプッシュし、キューからメッセージを取得できます。キューを使用して Topic からメッセージを消費できます。詳細については、「キュー」および「1 つのプロデューサークライアントから複数のコンシューマークライアントにメッセージを送信する」をご参照ください。

  • 1 対多

    Topic に公開されたメッセージは、複数のサブスクライバークライアントにプッシュできます。SMQ は、サブスクリプションで指定されたキューにメッセージをプッシュします。メッセージが公開されると、メッセージは複数のエンドポイントにプッシュされます。これにより、メッセージ公開の原子性が保証されます。

  • タグベースのメッセージフィルタリング

    SMQ では、タグを使用してメッセージをフィルターできます。サブスクリプションにタグを指定し、Topic からそのタグを持つメッセージのみを受信できます。SMQ は、タグが同じ場合にのみ、指定されたエンドポイントにメッセージをプッシュします。詳細については、「Topic に関する RESTful API 操作」をご参照ください。

  • メッセージ配信

    SMQ はメッセージをキューに送信します。詳細については、「キュー」および「1 つのプロデューサークライアントから複数のコンシューマークライアントにメッセージを送信する」をご参照ください。

  • 保証されたメッセージ配信: Topic に公開されたメッセージは、指定されたリトライポリシーとコンテンツフォーマットに基づいて、有効期間中にサブスクライバークライアントに自動的にプッシュされます。詳細については、「NotifyStrategy」をご参照ください。

  • メッセージフォーマット

    • XML: メッセージは XML フォーマットで、メッセージ本文とメッセージ属性が含まれます。

    • JSON: メッセージは JSON フォーマットで、メッセージ本文とメッセージ属性が含まれます。

    • SIMPLIFIED: メッセージ本文は、ユーザーによって公開されたメッセージです。属性情報は含まれません (これは簡略化されたフォーマット、つまりテキストフォーマットです)。詳細については、以下をご参照ください。

  • ログ管理

    ログは、メッセージが Topic に公開され、エンドポイントにプッシュされるときに生成されます。プッシュのリトライと結果に関する情報はログに記録されます。ログを使用して、メッセージのライフサイクルを表示できます。ログ管理により、問題を簡単にトラブルシューティングできます。詳細については、「ログ管理」をご参照ください。

  • Cloud Monitor

    Cloud Monitor はプッシュされたメッセージを記録します。1 つ以上のメッセージのプッシュに失敗した場合、Cloud Monitor ではアラートルールを作成して例外を追跡できます。詳細については、「Cloud Monitor」をご参照ください。