【发布时间】:2019-08-04 23:36:02
【问题描述】:
我有一个标准的 AWS SQS 队列,并且有多个 EC2 实例(~2K)以 2 秒的间隔主动轮询该队列。
我正在使用 AWS Java SDK 来轮询队列,并使用 ReceiveMessageRequest 和一条消息来响应每个请求。
我的期望是,在 SQS 控制台中显示的 正在运行的消息数是消费者收到但尚未从队列中删除的消息数(即,它是活动消息的数量正在处理中)。但问题是飞行中消息的数量比我瞬间的消费者数量要少得多。正如我所提到的,我有大约 2K 消费者,但我只看到飞行中的消息在 aprox 中计数。 300-600 范围。
我的假设是错误的,即正在运行的消息等于当前正在处理的消息数量。 SQS/EC2 或 SQS Java SDK 中是否有任何限制可以限制即时处理的消息数量?
【问题讨论】:
-
你的假设是正确的。您使用的是标准队列还是 FIFO 队列?
-
@JohnRotenstein 这是一个标准队列
标签: amazon-web-services amazon-sqs aws-java-sdk