2014-01-30 55 views

回答

2

亚马逊SQS刚刚获得FIFO Queues with Exactly-Once Processing & Deduplication

今天,我们正在SQS更加强大,并支持 的FIFO(先入先出)队列灵活。 我们在这两个地区现在推出这个新 类型的队列,并计划使其在 许多人提供早期2017年

这些队列的目的是保证信息的处理 恰好一次,按顺序发送,并且没有重复项目。 [...]

[重点煤矿]

所强调的那样,这些新的FIFO队列SQS将提供任何特殊注意事项消耗真FIFO不必要亚马逊SQS的消息,但不但在所有SQS regions [最初只在美国东部(俄亥俄州)和美国西部(俄勒冈州)]]都可用。

1

总之,没有:

问:亚马逊SQS提供先入先出(FIFO)访问消息?

不,Amazon SQS不保证对Amazon SQS队列中消息的FIFO访问,这主要是因为Amazon SQS的分布式特性。如果你需要特定的消息排序,你应该设计你的应用程序来处理它。

http://aws.amazon.com/sqs/faqs/

+0

迟到的道歉。我正在寻找一些可用于实现此目的的常用模式。 – Arvind

+1

@Arvind,你可以通过添加一个排序令牌手动为你的消息添加排序,然后自己排序,但是这在分布式系统中充满了问题。 – tster

1

需要以特定顺序到达的邮件可能不适合标准SQS队列。但是,您可以在发送消息时设置消息顺序计数器。在接收端,如果序列正确,您可以继续处理消息。如果出现序列消息不正确的情况,请等待正确的消息到来,然后处理正确的序列消息和其他消息。

enter image description here

在2016年11月17日FIFO队列已经在补充了标准队列某些区域(US East (Ohio)US West (Oregon))被引入。消息的发送和接收顺序被严格保留,并且一次消息被传送并保持可用,直到消费者处理并删除消息;不会将重复项引入队列中。 FIFO队列使用与标准队列相同的API操作,并且接收和删除消息以及更改可见性超时的机制都相同。但是,发送消息时,您必须指定一个消息组ID。在这里输入图片说明

enter image description here