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

Simple Message Queue (formerly MNS):サブスクリプション

最終更新日:Jan 13, 2025

このトピックでは、Simple Message Queue (formerly MNS)におけるサブスクリプションの定義、他のコンポーネントとの関係、および内部属性について説明します。

定義と他のコンポーネントとの関係

Simple Message Queue (formerly MNS)では、サブスクリプションとは、コンシューマーが特定のトピックに登録してメッセージを受信するためのルールです。特定のトピックに 1 つ以上のサブスクリプションを関連付け、各サブスクリプションのプッシュルールとレシーバーをカスタマイズできます。

次の図は、Simple Message Queue (formerly MNS)のメッセージングモデルにおける、サブスクリプションと他のコンポーネントとの関係を示しています。

機能の説明

  • 複数のサブスクリプションタイプ: 1 つのトピックに複数のサブスクリプションを設定でき、それぞれ異なるタイプのレシーバーに対応します。

  • メッセージの重複サブスクリプション: 各サブスクリプションは、特定のトピックのすべてのメッセージをサブスクライブできます。

サブスクリプション属性

サブスクリプション名

  • 定義: サブスクリプションの名前。サブスクリプションを一意に識別します。サブスクライバーは、同じトピックに対して同じ名前のサブスクリプションを複数作成することはできません。

  • 値: 最大 255 文字で、英字、数字、およびハイフン (-) を使用できます。最初の文字は英字である必要があります。

サブスクリプションタイプ

  • 定義: メッセージをサブスクライブするエンドポイントのタイプ。

  • 値: オプションは、キュー、HTTP サーバー、Short Message ServiceモバイルプッシュDirect Mailです。詳細については、「サブスクリプションタイプ」をご参照ください。

レシーバーエンドポイント (Endpoint)

  • 定義: メッセージを受信するエンドポイント。

  • 値:

    • サブスクリプションタイプが HTTP サーバー の場合、値は http:// または https:// で始まる HTTP URL です。

    • サブスクリプションタイプが キュー の場合、値はキュー名です。

    • サブスクリプションタイプが SMS の場合、値は携帯電話番号です。

    • サブスクリプションタイプが ダイレクトメール の場合、値はメールアドレスです。

    • サブスクリプションタイプが モバイルプッシュ の場合、値はアプリキーです。

メッセージフィルタリングタグ

  • 定義: メッセージをフィルタリングするために使用されるタグ。メッセージフィルタリングタグの詳細については、「メッセージのフィルタリング」をご参照ください。

  • 値: タグは最大 16 文字です。指定できるタグは 1 つだけです。

再試行ポリシー (NotifyStrategy)

  • 定義: SMQ がレシーバーにメッセージをプッシュするときにエラーが発生した場合の、SMQ によるメッセージプッシュの再試行方法を定義するポリシー。メッセージのプッシュに失敗した場合、Simple Message Queue (formerly MNS) は、再試行ポリシーに基づいてメッセージのプッシュを再試行します。最大再試行回数に達すると、Simple Message Queue (formerly MNS) はメッセージを破棄し、次のメッセージのプッシュを続行します。

  • 値:

    • BACKOFF_RETRY: 10 秒から 20 秒のランダムな遅延で 3 回再試行することを示します。

    • EXPONENTIAL_DECAY_RETRY: 最大 512 秒の指数関数的に増加する遅延で 176 回再試行することを示します。合計再試行期間は 1 日です。具体的な再試行間隔は、1 秒、2 秒、4 秒、8 秒、16 秒、32 秒、64 秒、128 秒、256 秒、残りの 167 回の再試行は 512 秒です。

メッセージ形式 (NotifyContentFormat)

  • 定義: レシーバーにプッシュされるメッセージの形式。

  • 値:

    • SIMPLIFIED: メッセージ本文にはメッセージの内容が含まれていますが、メッセージ属性は含まれていません。例:

      {1:"a", 2:"b"}
    • JSON: メッセージ本文には、メッセージの内容とメッセージ属性が含まれています。例:

      {
          "TopicOwner":"TopicOwner", // トピックの所有者
          "TopicName":"TopicName", // トピック名
          "Subscriber":"Subscriber", // サブスクライバー
          "SubscriptionName":"SubscriptionName", // サブスクリプション名
          "MessageId":"6CC4D900CA59A2CD-1-15180534A8F-20000****", // メッセージID
          "Message":"xxxxx", // メッセージ
          "MessageMD5":"F1E92841751D795AB325861034B5****", // メッセージのMD5
          "MessageTag":"important", // メッセージタグ
          "PublishTime":"1449556920975" // パブリッシュ時間
      }
    • XML: メッセージ本文には、メッセージの内容とメッセージ属性が含まれています。例:

      <?xml version="1.0" encoding="utf-8"?>
          <Notification xlmns="http://mns.aliyuncs.com/doc/v1/">
              <TopicOwner>TopicOwner</TopicOwner> 
              <TopicName>TopicName</TopicName> 
              <Subscriber>Subscriber</Subscriber> 
              <SubscriptionName>SubscriptionName</SubscriptionName> 
              <MessageId>6CC4D900CA59A2CD-1-15180534A8F-20000****</MessageId> 
              <Message>{1:"a", 2:"b"}</Message> 
              <MessageMD5>F1E92841751D795AB325861034B5****</MessageMD5> 
              <MessageTag>important</MessageTag> 
              <PublishTime>1449556920975</MessagePublishTime> 
          </Notification>
    説明

    サブスクリプションタイプが SMS または ダイレクトメール の場合、メッセージ形式は SIMPLIFIED のみです。