java - 向 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 中可能存在一些限制。但是需要您的帮助以了解解决此问题的可能方法。
先感谢您。
解决方案
确实有限制>
默认情况下,FIFO 队列支持每秒最多 3,000 条消息(带批处理)或每秒最多 300 条消息(每秒 300 次发送、接收或删除操作)(不带批处理)。如果您需要更高的吞吐量,请提交支持票以请求审查您的 FIFO 队列要求。
如果需要,您可以联系 AWS 支持以增加。
推荐阅读
- r - 使用来自多个数据帧的多个条件制作 R 循环/应用()
- javascript - 使覆盖页面更难在移动设备上绕过
- html - 在最大屏幕尺寸下将列从 12 增加到 16
- azure - Azure 数据资源管理器多数据库限制
- python - 为什么我不能在 sklearn 中为 OneClassSVM 构建预测模型
- google-sheets - 如何获取 Google 表格列中的最后一个数值?
- python - 为什么这不会回到 while 循环的开头?
- python - 从 M4A 转换时 MP3 的显示长度加倍
- python - Django 正在从错误的应用程序加载模板
- function - 网页最后修改日期的简单显示