15

如果 Amazon SQS 提供了某种 FIFO 访问的外观,我会喜欢使用它,但顺序似乎完全是随机的。

有什么东西可以为我提供具有 SQS 高可用性的 FIFO 排队作为云服务吗?

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

感谢您的见解!

4

4 回答 4

17

2016-11-19 更新

Amazon SQS 刚刚获得了具有 Exactly-Once 处理和重复数据删除功能的 FIFO 队列

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

这些队列旨在保证消息只被处理一次,按照它们发送的顺序,并且没有重复。[...]

[强调我的]

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


初步答案

如果 Amazon SQS 提供了某种 FIFO 访问的外观,我会喜欢使用它,但顺序似乎完全是随机的。

虽然我还没有体验过完全随机的消息排序(这可能取决于用例,尤其是消息量),但确实没有 FIFO 保证,请参阅相应的常见问题解答Amazon SQS 是否提供先进先出( FIFO) 访问消息?

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

鉴于您对托管的RabbitMQStormMQ表达了兴趣,我不妨向您指出其他商业产品:

云AMQP

CloudAMQPRabbitMQ 即服务,因此正是您所要求的,因为 RabbitMQ 支持所需的真正 FIFO 消息排序(请参阅Amazon SQS 与 RabbitMQ进行很好的比较)。

根据他们的计划和价格,它显然仅作为一流平台提供商的插件提供,因此您必须依次查看这些:

IronMQ

IronMQ 为开发人员提供具有高度可靠交付和云优化性能的即用型消息传递它符合当今对软件即服务 (SaaS)产品的期望,尤其是在易于理解且特别是已发布的定价模型方面正如Sleavely 正确批评的那样,Iron.io 似乎已经放弃了其以前的示范定价模型 - 请参阅 Alex Payne在 2012 年的《如何不销售软件》中进行了一次精彩的咆哮并就此提出建议。

到目前为止,我自己只对其进行了短期测试,但对所提供的功能和语言集成非常满意(请参阅客户端库Beanstalkd 支持)——考虑到它们具有竞争力的价格标签,尤其是免费层,使其成为探索消息队列作为一种服务解决方案,尤其是与他们的第二个产品IronWorker一种易于使用且可大规模扩展的任务队列 [...])相结合,它提供了迄今为止 AWS 还没有的功能。

FIFO消息排序

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

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

于 2012-05-02T00:54:18.820 回答
0

查看 RabitMQ 和 StormMQ。

于 2012-04-30T03:48:29.387 回答
0

ActiveMQ 是一种广泛使用的消息代理,它提供 FIFO 队列。如果您正在寻找与 AWS 一起使用的高可用性和托管版本,请查看http://www.cinovo.de/activemq-as-a-service 。

于 2014-09-29T14:09:04.607 回答
-1

我认为 IronMQ 将是适合您的方式

于 2014-05-23T04:47:05.127 回答