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

Simple Message Queue (formerly MNS):スロットリングポリシー

最終更新日:May 15, 2026

Simple Message Queue (formerly MNS) は、スロットリングのしきい値を超えたリクエストに対してスロットリングポリシーを適用し、基盤リソースへの過度な負荷を防ぎます。スロットリングポリシーを理解することで、メッセージの送受信頻度を適切に計画し、スロットリング発生時に適切な対応を取ることができます。

スロットリングの挙動

トラフィックがスロットリングのしきい値に近づくか、または達した場合、サーバーはリアルタイムのリソース使用状況に基づいて、スロットリングのしきい値を弾力的に自動調整します。ほとんどのシナリオでは、これによりユーザーが気づくことなく、より高い同時リクエストに動的に対応します。一時的なスロットリングがトリガーされた場合 (例:トラフィックの急増やクラスターリソースのボトルネック) 、システムは自動スケールアウトの完了後、トラフィック処理能力を回復し、同時にスロットリングのしきい値を引き上げます。

スロットリングがトリガーされると、システムはバックプレッシャーメカニズムを起動します。しきい値を超えたリクエストをサーバー上で一時的に保持し、その後 429 (TooManyRequests) エラーを返します。保持時間はサーバーがリアルタイムの負荷に基づいて動的に調整し、通常は 10~500 ミリ秒、最大で 5 秒です。これにより、システムが過負荷になることを防ぎ、全体的なパフォーマンスと安定性への影響を回避します。

エラーコード

スロットリングポリシーがトリガーされると、Simple Message Queue (formerly MNS) サーバーは次のエラーコード情報を返します。

HTTPS ステータスコード

エラーコード

エラーメッセージ

429

TooManyRequests

The request is denied by cluster flow limiter for too many requests.

スロットリングのしきい値

キュー消費モードにおける異常な消費のスロットリングポリシー

スタンダードキューの消費パターンでは、クライアントはメッセージを正常に処理した後、サーバーにメッセージ削除リクエストを送信する必要があります。クライアントが 「メッセージを受信しても削除リクエストを送信しない」 という非標準的な動作を繰り返し示す場合、システムはこれを異常な消費と判断し、システムの安定性を確保するためにスロットリングメカニズムをトリガーします。スロットリングが適用されると、クライアントが新しいメッセージを受信する速度は大幅に低下します。

次の条件の いずれか を満たすと、スロットリングがトリガーされます。

  • 期間:異常な消費が 30 分以上継続する場合。

  • メッセージ数:受信されたが削除されていないメッセージの累積数が 5,000 に達する場合。

  • トラフィックレート:受信されたが削除されていないメッセージの瞬間レートが 1,000 TPS を超える場合。

高トラフィックリクエストのスロットリングポリシー

Alibaba Cloud アカウントごと、リージョンごとのデフォルトのスロットリングのしきい値は 20,000 TPS です。トラフィックが 20,000 TPS を超える場合は、Quota Center コンソール にログインして、リージョンごとの最大 TPS の引き上げを申請してください。詳細な手順については、「クォータの引き上げ申請を送信する」をご参照ください。

リクエスト数のルール:

  • 各 API 呼び出しを 1 つのリクエストとしてカウントします。

  • バッチ送信シナリオにおける TPS の計算:キューに対して BatchSendMessage API を呼び出す場合、BatchSendMessage TPS = 1 秒あたりの実際の BatchSendMessage リクエスト数 × リクエストあたりのメッセージ数となります。たとえば、BatchSendMessage が 1 秒あたり 100 回呼び出され、各呼び出しに 10 個のメッセージが含まれている場合、単一キューにおける TPS は 100 × 10 = 1,000 となります。

  • バッチ消費シナリオにおける TPS の計算:キューに対して BatchReceiveMessage API を呼び出す場合、BatchReceiveMessage TPS = 1 秒あたりの実際の BatchReceiveMessage リクエスト数 (バッチあたりのメッセージ数とは無関係) となります。たとえば、BatchReceiveMessage が 1 秒あたり 100 回呼び出され、各呼び出しに 10 個のメッセージが含まれている場合、単一キューにおける TPS は 100 となります。

スロットリングの影響の回避

スロットリングポリシーがビジネスに与える影響を回避するには、次の 2 点にご注意ください。

  • トラフィックを慎重に計画し、ピークトラフィックを事前に連絡する:大規模なトラフィック増加が予想され、TPS が Quota Center コンソール で申請可能な最大値を超える場合は、チケットを送信 してテクニカルサポートに連絡し、より多くのリソースを予約してスロットリングを回避してください。

  • モニタリングとアラートSimple Message Queue (formerly MNS) と連携してアラートルールを作成することを推奨します。CloudMonitor コンソール ([CloudMonitor コンソール] > [クラウドサービス監視] > [Message Service MNS]) で各キューまたはトピックのリアルタイム TPS 使用状況を確認し、スロットリングのしきい値に近づいていないか監視してください。

よくある質問

サービスは 20,000 TPS のみに対応していますか?

いいえ。20,000 TPS はデフォルトの保証値です。実際に対応可能な TPS は、クラスターの負荷と弾力的なスケーリング機能に応じて、より高くなる可能性があります。

20,000 TPS を超えた場合にスロットリングが発生することがあるのに、常に発生しないのはなぜですか?

サーバーがスロットリングをトリガーするかどうかを判断する際、一定の弾力的なマージンがあります。デフォルトのスロットリングのしきい値 20,000 TPS を例にすると、スロットリングをトリガーする実際の QPS は厳密に 20,000 に等しいわけではなく、わずかに高くなる可能性があります (例:20,000 から 20,200。この範囲は単なる例であり、実際の範囲は動的に調整されます) 。ただし、この弾力的なマージンは固定値ではありません。クラスターの負荷が高い場合、弾力的なマージンは自動的に狭くなり、極端な場合は 0 に減少する可能性があります。つまり、しきい値に達すると即座にスロットリングがトリガーされます。

API 最大値または API ウォーターマークアラートを設定して、スロットリングの発生を回避し、メッセージの送受信失敗によるビジネスへの影響を防ぐことを強く推奨します。詳細については、「アラートルールを作成」をご参照ください。

1 分あたりの API QPS 最大値

MaxApiQpsPerUser

API QPS ウォーターマーク割合

WatermarkOfApiQps

1 分あたりのコンソール API QPS 最大値

MaxConsoleApiQpsPerUser

コンソール API QPS ウォーターマーク割合

WatermarkOfConsoleApiQps

スロットリングはビジネスに影響しますか?

スロットリングは、突然のトラフィック急増によってクラスターが過負荷になり、全体的な安定性に影響を与えることを防ぐためのシステム過負荷保護メカニズムです。429 エラーを受信した際には、クライアントがエクスポネンシャルバックオフリトライ戦略を採用すること (例:1 秒、2 秒、4 秒と徐々に間隔を増やす) を推奨します。これにより、即座の大規模なリトライによって負荷がさらに増大することを回避できます。