全部產品
Search
文件中心

Simple Message Queue (formerly MNS):訂閱(Subscription)

更新時間:Sep 14, 2024

本文介紹Simple Message Queue (formerly MNS)中訂閱(Subscription)的定義、模型關係及內部屬性。

定義和模型關係

Simple Message Queue (formerly MNS)中,訂閱是消費者註冊特定主題以接收訊息的規則。通過不同的訂閱規則將特定主題(Topic)與一個或多個訂閱(Subscription)關聯,可以自訂訊息的推送規則和接收目標。

Simple Message Queue (formerly MNS)的訊息模型中,訂閱的位置和流程如下圖所示。

功能說明

  • 多種訂閱類型:一個主題可以有多個訂閱,分別對應不同類型的接收目標。

  • 訊息可被重複訂閱:每個訂閱都可以訂閱主題中的所有訊息。

訂閱屬性

訂閱名稱

  • 定義:訂閱的名稱,用於標識訂閱,同一個訂閱者訂閱相同的主題時,訂閱名稱不能重複。

  • 取值:255個字元以內,必須以英文字母開頭,剩餘名稱可以是英文、數字、短劃線(-)。

訂閱類型

  • 定義:訂閱訊息的終端類型。

  • 取值:可以選擇隊列、HTTP服務、Short Message ServiceDirect Mail、Alibaba Cloud Mobile Push。更多資訊,請參見訂閱類型

接收端地址

  • 定義:接收訊息的Endpoint。

  • 取值:

    • 訂閱類型為HTTP時,填寫以http://或者https://開頭的HTTP地址。

    • 訂閱類型為隊列時,填寫隊列名稱。

    • 訂閱類型為阿里簡訊時,填寫手機號碼。

    • 訂閱類型為郵箱時,填寫郵箱地址。

    • 訂閱類型為移動終端時,填寫Appkey。

訊息過濾標籤

  • 定義:用於對訊息進行過濾。關於訊息過濾的更多資訊,請參見訊息過濾

  • 取值:不超過16個字元,目前支援設定1個標籤。

重試策略

  • 定義:訂閱的NotifyStrategy屬性,向接收端推送訊息出現錯誤時的重試策略。當推送訊息失敗時,Simple Message Queue (formerly MNS)將按照該屬性指定的重試策略進行重試。超過重試策略的次數後,Simple Message Queue (formerly MNS)將丟棄這條訊息,繼續推送下一條訊息。

  • 取值:

    • 退避重試(BACKOFF_RETRY):重試3次,每次重試的間隔時間是10秒到20秒之間的隨機值。

    • 指數衰減重試(EXPONENTIAL_DECAY_RETRY):重試176次,每次重試的間隔時間指數遞增至512秒,總計重試時間為1天。每次重試的具體間隔為:1,2,4,8,16,32,64,128,256,512,512...512 (共167個512)。

訊息格式

  • 定義:訂閱的NotifyContentFormat屬性,設定推送給使用者的訊息格式。

  • 取值:

    • SIMPLIFIED:訊息體即使用者發布的訊息,不包含任何屬性資訊。訊息體樣本:

      {1:"a", 2:"b"}
    • JSON:訊息體為JSON格式,包含訊息本文和訊息屬性。訊息體樣本:

      {
          "TopicOwner":"TopicOwner",
          "TopicName":"TopicName",
          "Subscriber":"Subscriber",
          "SubscriptionName":"SubscriptionName",
          "MessageId":"6CC4D900CA59A2CD-1-15180534A8F-20000****",
          "Message":"xxxxx",
          "MessageMD5":"F1E92841751D795AB325861034B5****",
          "MessageTag":"important",
          "PublishTime":"1449556920975"
      }
    • XML:訊息體為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>
    說明

    當訂閱類型為阿里簡訊和郵箱時,僅支援SIMPLIFIED類型的訊息格式。