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

Simple Message Queue (formerly MNS):SMQ とは

最終更新日:Jan 16, 2025

Alibaba Cloud Simple Message Queue (SMQ、旧称 MNS) は、スケーラビリティ、高効率、信頼性、セキュリティ、および可用性を提供する分散メッセージングサービスです。 SMQ を使用すると、開発者はアプリケーションの分散コンポーネント間でデータと通知を転送し、疎結合システムを構築できます。SMQ は、キューベースのメッセージングモデルとトピックベースのメッセージングモデルを提供します。

アクセス方法

SMQ は、インターネットおよび Virtual Private Cloud (VPC) からのアクセスをサポートしています。ネットワークタイプとして 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 キュー内のメッセージを取得できるようになります。

  • ログ管理

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

  • CloudMonitor

    CloudMonitor コンソールでキュー情報を表示し、アラートルールをカスタマイズできます。その後、予期しない問題が発生した場合、CloudMonitor から通知が送信されます。詳細については、「CloudMonitor」をご参照ください。

トピックベースのメッセージングモデル

トピックベースのメッセージングモデルは、1 つの パブリッシャー クライアントから複数の サブスクライバー クライアントにメッセージを送信するために使用されます。 SMQ トピックは、複数の方法を使用してメッセージとしてプッシュできます。

トピックは、複数のお客様が購読する新聞に例えることができます。新聞の新しい号が発行されると、お客様 (郵便局のパートナーを含む) は次のいずれかの方法を選択して新聞を受け取ることができます。

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

  • 郵便配達員が新聞を配達する最寄りの売店に行く。

トピックベースのメッセージフロー

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

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

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

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

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

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

図 2. トピックベースのメッセージフローtopicmodel

トピックベースのメッセージングモデルの特徴

  • 通知メッセージ

  • 1 対多

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

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

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

  • メッセージ配信

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

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

  • メッセージ形式

    • XML: メッセージは XML 形式で、メッセージ本文とメッセージ属性が含まれています。

    • JSON: メッセージは JSON 形式で、メッセージ本文とメッセージ属性が含まれています。

    • SIMPLIFIED: メッセージ本文は、ユーザーがパブリッシュしたメッセージです。属性情報は含まれていません (これは簡略化された形式、つまりテキスト形式です)。詳細については、以下をご参照ください。

  • ログ管理

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

  • CloudMonitor

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