设计您的应用程序以处理Amazon SQS中的FIFO

Gau*_*pta 9 fifo amazon-sqs amazon-web-services

从Amazon SQS FAQ页面:

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

我的问题是 - 如何以这种方式设计应用程序?

小智 3

您可以在发送消息时设置消息顺序计数器。在接收端,如果顺序正确,您可以继续处理消息。如果出现乱序消息,则等待正确的消息出现(直到将消息存储在按序列号排序的列表中),然后处理正确序列的消息和其他消息。

  • 简而言之,就是这样。需要按特定顺序到达的消息可能不适合 SQS,或者可能是概念缺陷的迹象。 (2认同)
  • @pankajbatra - 另外,如果多个作业正在侦听一个特定队列(这是实际中的常见场景),如何以这种方式处理这种情况?我想这仅适用于单线程队列侦听器作业? (2认同)