SQS消息未删除

Eng*_*_DJ 10 java message-queue amazon-sqs amazon-web-services

我在SQS队列中有一小组消息,即使发送到AWS端点的删除请求返回200响应,也不会删除这些消息.我的应用程序处理的消息很好,删除请求也很好.

我正在使用Java AWS SDK 1.3.6.

还有其他人遇到过这个问题吗?

Eng*_*_DJ 12

哎呀 - 队列被意外设置为defaultVisibilityTimeout=0.将此值更改为正值可解决问题.

这仍然提出了几个问题:

  1. 为什么这只影响某些消息?也许有些人需要更长时间来处理
  2. 为什么亚马逊在没有删除邮件时返回200删除?
  3. 被删除失败,因为它落在了0秒窗口(在这种情况下,为什么以外的任何删除请求成功吗?),还是他们失败了,因为其他消费者已经由次地拿起收到删除请求?

  • 我现在正在使用JavaScript SDK遇到同样的事情.我的超时也是0,但增加它并没有帮助.我也获得了成功消息,但只有当我通过AWS控制台删除它才能正常工作.任何人的更新? (2认同)

Rav*_*ila 5

官方文档(版本1.9.13)

重要提示:即使在删除消息后,您也可能会收到一条消息。如果在您请求删除邮件时存储邮件副本的服务器之一不可用,则在极少数情况下可能会发生这种情况。该副本保留在服务器上,并可能在后续接收请求时再次返回给您。您应该将系统创建为幂等的,以便多次接收特定消息不会出现问题。