有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Amazon SQS:两个当前消费者使用相同的消息

我现在有四个消费者在亚马逊AWS上收听同一个队列。从队列中下拉消息时,有时会出现两个不同的使用者使用同一消息的情况。请参阅下面的日志:

18:01:46515[jmsContainer-2]调试-从队列接收到消息:ID:3698a927-930b-4d6a-aeca-f66922528792

18:02:12825[jmsContainer-3]调试-从队列接收到消息:ID:3698a927-930b-4d6a-aeca-f66922528792

我有一个带有4个并发使用者的JMS容器设置。我把可视性超时设置为30秒

既然消息是由container2接收的,为什么container3仍然能够访问它

JMS容器是在侦听器方法(handleMessage)执行之前还是之后进行自动确认


共 (2) 个答案

  1. # 2 楼答案

    亚马逊不保证使用SQS只交付一次。他们保证“至少一次”交货。这在常见问题解答https://aws.amazon.com/sqs/faqs/中有介绍

    您必须记住这一点,并设计系统以优雅地处理重复的消息传递