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