与RabbitMQ相比,Amazon SQS的性能较慢

6
我想在我的网站应用程序中集成一个消息队列中间层。我已经测试了Rabbitmq和Amazon SQS,但发现Amazon SQS很慢。在Amazon SQS中,我每秒只能得到80个请求,而在Rabbitmq中我可以得到2000个请求。我提出这个问题是因为我更喜欢使用亚马逊的所有服务,包括Amazon SQS。请问有人可以告诉我为什么这么慢吗?或者如果有任何好的Amazon SQS基准结果,您能分享一下吗?非常感谢帮助。

1
你能告诉我们更多关于你的设置吗:你使用的是什么编程语言?是否使用了多线程?此外,亚马逊从未承诺过消息传递会具有低延迟,只是在有足够的读写器的情况下可以很好地扩展。 - Jeff
我已经使用Java驱动程序进行了测试。我已经使用1个线程进行了测试,然后对于接收消息和发送消息都使用了25个线程进行了测试。我已经重用了AWS Java SDK 1.3.8中提供的示例代码。 - Anand Soni
1
如果您想要一个基于EC2的RabbitMQ托管解决方案,请查看http://www.cloudamqp.com。 - Carl Hörberg
谢谢Carl Horberg。我已经查看了它,但由于它是付费的,所以我避免使用它:-)。因此,我决定使用自己在EC2上的RabbitMQ服务器,并根据需要进行扩展。虽然这项服务很好。再次感谢。 - Anand Soni
2个回答

11

需要记住的一点是,SQS正在跨多个可用区域复制您的数据。与单个Rabbit或其他MQ实现相比,这会增加时间复杂度。

如果您的单个RabbitMQ实例关闭了,您是否可以接受无法处理消息或潜在数据丢失的情况?如果可以,您可能不需要复制甚至磁盘持久性。但我猜大多数使用情况都会关心,因此,SQS提供了一个非常简单易用的分布式MQ解决方案,理论上免受单点故障影响。


4
根据这篇文章,您可以在Amazon AWS(EC2)上运行RabbitMQ,并且它将更快,可能也更便宜,每秒有一条消息和一个财务比较。 RabbitMQ 网站上还有其他如何指南。

谢谢robthewolf。我已经看到了你提供的确切网站。我已经研究了RabbitMQ,但是我在自动扩展rabbitmq集群方面遇到了问题。 - Anand Soni
你看过这个吗?http://www.rabbitmq.com/blog/2012/04/25/rabbitmq-performance-measurements-part-2/ 不确定它是否有帮助。 - robthewolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接