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