サブスクリプションは、Simple Message Queue (formerly MNS) のトピックからコンシューマーがメッセージを受信する方法を定義するものです。
定義とモデルの関係
Simple Message Queue (formerly MNS) では、サブスクリプションは、コンシューマーがトピックに登録してメッセージを受信するためのルールです。トピックを 1 つ以上のサブスクリプションに関連付けることで、プッシュルールと配信先をカスタマイズできます。
次の図は、Simple Message Queue (formerly MNS) のメッセージングモデルにおいてサブスクリプションがどのように位置付けられるかを示しています。
機能
-
複数のサブスクリプションタイプ:トピックには複数のサブスクリプションを設定できます。各サブスクリプションは異なるエンドポイントタイプに対応します。
-
メッセージに対する複数のサブスクリプション:トピックには複数のサブスクリプションを設定でき、各サブスクリプションはそのトピックのすべてのメッセージを受信します。
サブスクリプションのプロパティ
サブスクリプション名
-
定義:サブスクリプションの識別子です。サブスクライバーおよびトピックごとに一意である必要があります。
-
値:最大 255 文字の文字列。名前は英字で始まり、英字、数字、ハイフン (-) を使用できます。
サブスクリプションタイプ
-
定義:メッセージをサブスクライブするエンドポイントのタイプです。
-
値:キュー、HTTP サービス、Short Message Service、Direct Mail、および Mobile Push。詳細はサブスクリプションタイプをご参照ください。
プッシュのレート制限 (TPS) はサブスクリプションタイプによって異なります:
-
スタンダードキューのサブスクリプション:デフォルトのプッシュ上限は 20,000 TPS です。
-
HTTP(S) サービスのサブスクリプション:デフォルトのプッシュ上限は 2,000 TPS です。
これらの上限を超えるとスロットリングが発生し、メッセージ配信が遅延する場合があります。上限を引き上げるには、チケットを送信してください。
エンドポイント
-
定義:メッセージを受信するエンドポイントです。
-
値:
-
[サブスクリプションタイプ] を 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:合計 1 日の期間にわたり、メッセージプッシュを 176 回リトライします。リトライ間隔は 1 秒から最大 512 秒まで指数関数的に増加します。具体的なリトライ間隔は 1、2、4、8、16、32、64、128、256、512 で、その後は 512 秒間隔で 166 回リトライします。
-
メッセージフォーマット (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 xmlns="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</PublishTime> </Notification>
説明ショートメッセージサービスおよびメールボックスのサブスクリプションタイプでは、SIMPLIFIED メッセージフォーマットのみがサポートされています。
-