如果 Amazon SQS 提供了某种 FIFO 访问的外观,我会喜欢使用它,但顺序似乎完全是随机的。
有什么东西可以为我提供具有 SQS 高可用性的 FIFO 排队作为云服务吗?
如果这要求太多 - 在 EC2 中将上述要求放在一起的最简单方法是什么?或者换句话说,在 EC2 中工作的最简单的高可用性队列解决方案是什么?
感谢您的见解!
如果 Amazon SQS 提供了某种 FIFO 访问的外观,我会喜欢使用它,但顺序似乎完全是随机的。
有什么东西可以为我提供具有 SQS 高可用性的 FIFO 排队作为云服务吗?
如果这要求太多 - 在 EC2 中将上述要求放在一起的最简单方法是什么?或者换句话说,在 EC2 中工作的最简单的高可用性队列解决方案是什么?
感谢您的见解!
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 的分布式特性。如果您需要特定的消息排序,您应该设计您的应用程序来处理它。
鉴于您对托管的RabbitMQ和StormMQ表达了兴趣,我不妨向您指出其他商业产品:
CloudAMQP是RabbitMQ 即服务,因此正是您所要求的,因为 RabbitMQ 支持所需的真正 FIFO 消息排序(请参阅Amazon SQS 与 RabbitMQ进行很好的比较)。
根据他们的计划和价格,它显然仅作为一流平台提供商的插件提供,因此您必须依次查看这些:
IronMQ 为开发人员提供具有高度可靠交付和云优化性能的即用型消息传递。它符合当今对软件即服务 (SaaS)产品的期望,尤其是在易于理解且特别是已发布的定价模型方面正如Sleavely 正确批评的那样,Iron.io 似乎已经放弃了其以前的示范定价模型 - 请参阅 Alex Payne在 2012 年的《如何不销售软件》中进行了一次精彩的咆哮并就此提出建议。
到目前为止,我自己只对其进行了短期测试,但对所提供的功能和语言集成非常满意(请参阅客户端库和Beanstalkd 支持)——考虑到它们具有竞争力的价格标签,尤其是免费层,使其成为探索消息队列作为一种服务解决方案,尤其是与他们的第二个产品IronWorker(一种易于使用且可大规模扩展的任务队列 [...])相结合,它提供了迄今为止 AWS 还没有的功能。
不幸的是,我无法弄清楚 IronMQ 是否直接支持真正的 FIFO,因此我实际上对此表示怀疑——因此,您需要提交支持请求来验证这一点。
Iron.io 的Evan Shaw证实 IronMQ 实际上提供了 FIFO 消息排序(非常感谢)。
查看 RabitMQ 和 StormMQ。
ActiveMQ 是一种广泛使用的消息代理,它提供 FIFO 队列。如果您正在寻找与 AWS 一起使用的高可用性和托管版本,请查看http://www.cinovo.de/activemq-as-a-service 。
我认为 IronMQ 将是适合您的方式