首页 > 解决方案 > 向 SQS 发布消息时出错:AmazonSQS;状态码:403;错误代码:RequestThrottled

问题描述

从我的 API 网关,我将 JSON 有效负载发布到我的 SQS FIFO 队列之一,再次被消费并发布到另一个 FIFO 队列。

在将我的 JSON 有效负载从 API Gateway 发布到我的第一个 SQS FIFO 队列时,出现以下错误: AmazonSQS;状态码:403;错误代码:RequestThrottled

目前我正在进行性能测试。我每秒连续发送 200 条消息,大约 10 分钟后,我开始收到少数请求的 RequestThrottled 错误。在总共 500000 个请求中,它会出现大约 2000 个节流错误。

我正在使用简单的 AWS Java SDK 将消息发布到 SQS:

final SendMessageRequest sendMessageRequest = new SendMessageRequest(sqsURL, messageMetaData);
sendMessageRequest.setMessageGroupId(BoostConstant.GROUP_NAME);
sendMessageRequest.setMessageDeduplicationId(messageMetaData.getId());
amazonSQS.sendMessage(sendMessageRequest);

对我来说,看起来有这么多消息,SQS FIFO 中可能存在一些限制。但是需要您的帮助以了解解决此问题的可能方法。

先感谢您。

标签: javaamazon-web-servicesamazon-sqsaws-java-sdk

解决方案


确实有限制>

默认情况下,FIFO 队列支持每秒最多 3,000 条消息(带批处理)或每秒最多 300 条消息(每秒 300 次发送、接收或删除操作)(不带批处理)。如果您需要更高的吞吐量,请提交支持票以请​​求审查您的 FIFO 队列要求。

如果需要,您可以联系 AWS 支持以增加。

请参阅:https ://aws.amazon.com/sqs/faqs/#FIFO_queues


推荐阅读