重复的消息之间的时间段时间段、消息

2023-09-11 11:48:22 作者:冷心冷血冷感情

据为SQS文档(重点矿山):

According to the documentation for SQS (emphasis mine):

在多个服务器上的冗余和高可用性的消息亚马逊SQS副本存储。在极少数情况下,存储邮件的副本的一台服务器,当你收到或删除的信息可能不可用。如果发生这种情况,该邮件的副本将不会被认为不可用的服务器上删除,和则可能会在接收邮件再次获得这一信息的副本。正因为如此,你必须将应用程序设计为幂等(即,它不能受到不利,如果它处理同样的消息不止一次受到影响)。

Amazon SQS stores copies of your messages on multiple servers for redundancy and high availability. On rare occasions, one of the servers storing a copy of a message might be unavailable when you receive or delete the message. If that occurs, the copy of the message will not be deleted on that unavailable server, and you might get that message copy again when you receive messages. Because of this, you must design your application to be idempotent (i.e., it must not be adversely affected if it processes the same message more than once).

可以在正本和副本所接收到的消息之间的合理发生什么时间段? (秒?时间?月?)

What time period can reasonably occur between the original and duplicate messages being received? (seconds? hours? months?)

推荐答案

我没有具体证据或连结告诉你,但我的经验与SQS工作,你所谈论的范围内的时间是下了几分钟大多数情况下。重复的消息发生将是因为活动那个时间的非常小的滞后期间发生在消息上地方作为消息经由非常高速连接复制到AWS基础设施内冗余队列,所以换句话说,非常迅速的可能性。它也有可能会受所指定的可见性超时。

I have no specific proof or link to show you, but in my experience working with SQS you are talking about a range of time that is under a few minutes in most cases. The possibility of a duplicate message happening will be because of activity that took place on the message during the very small lag of time as the message is replicated via very high speed connections to redundant queues within the AWS infrastructure, so in other words, very quickly. It is also likely going to be affected by the visibility timeouts you have specified.