翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SQS での FIFO スロットリングの問題のトラブルシューティング
デフォルトでは、FIFO キューは、、、および の API アクションごとに 1 秒あたり 300 SendMessage
件のトランザクションをサポートしますReceiveMessage
DeleteMessage
。キュー内のメッセージが利用可能な場合でも、300 TPS を超えるリクエストはThrottlingException
エラーを受け取ります。これを軽減するには、次の方法を使用できます。
-
Amazon SQS API バッチアクション
SendMessageBatch
、DeleteMessageBatch
、およびChangeMessageVisibilityBatch
を使用して、API アクションごとに 1 秒あたり最大 3,000 メッセージという TPS 制限を引き上げ、コストを削減します。ReceiveMessage
API の場合、トランザクションごとに最大 10 個のメッセージを受信するようにMaxNumberofMessages
パラメータを設定します。詳細については、「Amazon SQSのバッチアクション」を参照してください。 -
スループットの高い FIFO キューの場合は、推奨事項に従ってパーティション使用率を最適化します。同じメッセージグループ IDsで送信します。メッセージを削除するか、同じ
ReceiveMessage
API リクエストからの受信ハンドルを使用してメッセージの可視性タイムアウト値をバッチで変更します。 -
一意の
MessageGroupId
値の数を増やします。これにより、FIFO キューパーティション間で均等に分散できます。詳細については、「Amazon SQSメッセージグループ ID の使用」を参照してください。
詳細については、「 ナレッジセンターガイド」のAmazon SQS FIFO キューが他のメッセージグループ内のすべてのメッセージまたはメッセージを返さないのはなぜですか?