根据SQS(强调我的)的文件:
Amazon SQS将您的邮件副本存储在多台服务器上,以实现冗余和高可用性。在极少数情况下,当您收到或删除邮件时,其中一个存储邮件副本的服务器可能不可用。如果发生这种情况,则不会在该不可用的服务器上删除该邮件的副本,并且您可能会在收到邮件时再次收到该邮件副本。因此,您必须将您的应用程序设计为幂等的(即,如果它不止一次处理相同的消息,则不得对其产生负面影响。)
收到原始邮件和重复邮件之间可以合理地发生什么时间段? (秒?小时?几个月?)
答案 0 :(得分:4)
我没有特定的证据或链接向您展示,但根据我使用SQS的经验,您谈论的是大多数情况下几分钟的时间。发生重复消息的可能性是因为消息通过非常高速的连接复制到AWS基础架构内的冗余队列,因此在非常小的时间滞后期间对消息发生了活动,换句话说,非常快。它也可能会受到您指定的可见性超时的影响。