亚马逊SQS:为了读消息不(amazon sqs :read message not in orde

2019-09-17 17:40发布

我想借此从它被插入到SQS以相同的顺序亚马逊SQS消息(先入先出模型)。 是他们的任何方式来实现它? 我使用Zend的PHP编程为。

Answer 1:

无序的消息传送是在SQS的设计所固有的。 您可以尝试通过编号的信息和本地存储乱序消息,直到丢失的邮件到达时解决它,但它可能不值得冒这个险。

SQS是真的有点古怪的家伙,它做什么,它说,但它的作用是不是大多数人都在寻找在消息总线。 我真的希望亚马逊将提供和额外的排队解决方案更像是RabbitMQ的。 SQS是真的只适合分发甚至都没有远程连接任务,那里的东西,如订单和延迟并不重要。 举例来说这将是巨大的发送完成的订单到出货中心,或者安排的打印作业。

自己的文档显示它被用来安排生成缩略图,但是当我用它最近为这个确切的目的我很快就发现,我的用户是不会留下深刻的印象与延迟:这有时是30-50秒。

您仍然可以在EC2节点上运行的RabbitMQ,虽然不是作为具有可扩展性SQS它集群,并应采取你很远。



Answer 2:

你可以尝试IronMQ 。 它托管像SQS,已率先走出排序第一保证,没有最终一致性的延误,是超级可扩展的,你可以在几分钟内运行。

下面是一个PHP库吧: https://github.com/iron-io/iron_mq_php

声明:我Iron.io工作



Answer 3:

该SQS文档回答了这个给你(粗体是我的重点,直接回答你的问题):

亚马逊SQS使保存在消息为了尽最大努力,但由于队列的分布式特性,我们不能保证你会在您发送的确切顺序接收消息。 如果您的系统要求,为了保存,我们建议您将测序信息在每个消息中这样你就可以在收到重新排序的消息。



Answer 4:

我试图实现FIFO时尚以相同的顺序接收消息,他们被送往

为此,您可以使用消息序列中没有它每次发送与消息,并在接收端验证

通过这种方式,您可以得到以FIFO的顺序所需的输出



文章来源: amazon sqs :read message not in order