Roy*_*ger 2 java amazon-sqs amazon-web-services
我正在开发一个使用 Amazon SQS 的应用程序。我是 AWS 的新手,所以我对从 SQS 接收消息有一点疑问。我已经配置了一个 SQS,并希望通过使用长轮询来接收来自它的消息。我的问题是我最多可以从 SQS 获得多少条消息?
我已将 设置MaxNumberOfMessages为 50 和ReceiveMessageWaitTimeSeconds20。
一季度。我最多可以从 SQS 获得 50 条消息吗?
Q2。有ReceiveMessageWaitTimeSeconds什么关系?我在 AWS 文档中读到短轮询= 0 sec和长轮询的时间超过 0 秒。这是否意味着我也可以设置ReceiveMessageWaitTimeSeconds = 5以确保长轮询?
我还阅读了短轮询和长轮询之间的区别,因为前者只会查询 SQS 服务器的一个子集,而后者会查询所有服务器。那么除了它会等待 5 秒或 20 秒之外,秒是否重要?
我已经浏览了以下 AWS 文档:
示例代码如下:
CreateQueueRequest createQueueRequest = new CreateQueueRequest().withQueueName(queueName);
String queueUrl = sqs.createQueue(createQueueRequest).getQueueUrl();
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl);
receiveMessageRequest.setMaxNumberOfMessages(50);
receiveMessageRequest.setReceiveMessageWaitTimeSeconds(20);
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message message : messages) {
// I'm a message from SQS
}
Run Code Online (Sandbox Code Playgroud)
长轮询只是意味着当没有可用消息时,Amazon SQS 在返回结果之前将等待一段时间。这样,SQS 将延迟响应,直到配置的时间已过或消息可用,而不是不断地请求消息。
这有点像让孩子坐在汽车后座上说“我们到了吗?” 每秒一次。长轮询会增加他们询问之间的时间。
通过ReceiveMessage()调用提供的最大消息数是 10。文档说:“有效值:1 到 10。”
| 归档时间: |
|
| 查看次数: |
3262 次 |
| 最近记录: |