我有四个当前的消费者在Amazon AWS上侦听同一个队列 . 从队列中拉下消息时,有时两个不同的消费者会消耗相同的消息 . 请参阅下面的日志:
18:01:46,515 [jmsContainer-2] DEBUG - 从队列中收到消息:ID:3698a927-930b-4d6a-aeca-f66922528792
18:02:12,825 [jmsContainer-3] DEBUG - 从队列收到的消息:ID:3698a927-930b-4d6a-aeca-f66922528792
我有一个包含4个并发使用者的JMS容器设置 . 我将可见性超时设置为30秒 .
由于container2收到了消息,容器3怎么还能访问它?
JMS容器是否在执行侦听器方法(handleMessage)之前或之后执行自动确认?
1 回答
亚马逊不保证一旦交付SQS . 他们保证"at least once"交付 . 常见问题解答https://aws.amazon.com/sqs/faqs/
您必须牢记这一点,并设计您的系统以优雅地处理重复的邮件传递 .