是否有FIFO消息队列服务提供Amazon SQS的高可用性?

use*_*144 15 activemq-classic amazon-ec2 rabbitmq zeromq amazon-sqs

本来喜欢使用Amazon SQS,如果它提供了一些相似的FIFO访问,但序列似乎是完全随机的.

是否有什么能够为我提供FIFO排队作为云服务以及SQS的高可用性?

如果这要求太多 - 在EC2中将上述要求放在一起的最简单方法是什么?或者换句话说,在EC2中最简单的高可用性排队解决方案是什么?

感谢您的见解!

Ste*_*pel 17

更新2016-11-19

亚马逊SQS刚刚获得了具有完全一次处理和重复数据删除功能的FIFO队列:

今天,我们通过支持FIFO(先进先出)队列使SQS更加强大和灵活.我们现在正在两个地区推出这种新型队列,并计划在2017年初在其他许多地区推出.

这些队列旨在保证消息按照发送顺序正确处理一次,并且没有重复.[...]

[强调我的]

正如强调的那样,这些新的FIFO SQS队列将涵盖手头的用例,但尚未在所有SQS区域中提供 [最初仅在美国东部(俄亥俄州)和美国西部(俄勒冈州)].此外,FIFO队列SQS FAQ概述了应该预先考虑的标准队列和FIFO队列之间的显着差异,例如每秒300个事务的吞吐量限制.


初步答复

本来喜欢使用Amazon SQS,如果它提供了一些相似的FIFO访问,但序列似乎是完全随机的.

虽然我没有经历过完全随机的消息排序,但(这可能取决于所使用的情况下,尤其是消息量虽然),没有FIFO保证确实,请参见相应的常见问题请问亚马逊SQS提供先入先出( FIFO)访问消息?:

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

鉴于您对托管的RabbitMQ以及StormMQ表示了兴趣,我不妨指向其他商业产品:

CloudAMQP

CloudAMQP的RabbitMQ作为一项服务,因此正是你一直在问什么,因为RabbitMQ的支持所需的真正的FIFO消息排序(参见亚马逊SQS与RabbitMQ的一个不错的比较).

根据他们的计划和价格,它显然只是作为一流平台提供商的插件提供,因此你将不得不依次研究这些:

IronMQ

IronMQ 为开发人员提供即时可用的消息传递,具有高度可靠的交付和云优化的性能.它符合当今对软件即服务(SaaS)产品的期望,而不仅仅是关于易于理解和特别公布的定价模型正如Sleavely 正确批评的那样,Iron.io似乎已经放弃了以前的模范定价模式 - 见Alex佩恩在2012年如何不销售软件,以获得一个很好的咆哮并就此提出建议.

到目前为止,我自己很快就对它进行了测试,但对所提供的功能和语言集成非常满意(请参阅客户端库Beanstalkd支持) - 鉴于其具有竞争力的价格标签,特别是免费套餐使其成为探索消息排队作为服务的解决方案,不是最少结合其第二产品铁工(一个易于使用的和大规模扩展的任务队列[...] ),它提供的功能甚至没有可从AWS为今天的.

FIFO消息排序

不幸的是,我无法弄清楚IronMQ是否直接支持真正的FIFO,因此我实际上对此表示怀疑 - 因此,您需要提交支持请求来验证这一点.

来自Iron.io的Evan Shaw证实IronMQ实际上提供了FIFO消息排序(非常感谢).

  • 我在Iron.io工作,可以确认IronMQ订购消息FIFO. (6认同)