RabbitMQ vs GAE

时间:2012-07-05 04:58:07

标签: android google-app-engine cluster-computing rabbitmq

我正在编写一个实时交换消息的实时手机游戏,我想知道我应该选择什么:RabbitMQ或GAE。我知道GAE是一个有效的解决方案,因为几乎所有东西都已经实现,所以我的编程速度更快,但从长远来看,我不知道我是否愿意支付那些真正的高价 - 所以它归结为实现我自己的服务器上的其他一些消息交换服务,所以我在考虑RabbitMQ。

令我担心的是,RabbitMQ节点可以添加到集群中,但如果GAE使用1.000个实例,那么处理相同负载需要多少RabbitMQ节点,因为我真的不想拥有1.000集群中的节点,这意味着我必须租用1.000 VPS。

所以,这就是为什么我要确定处理100万用户需要多少兔子节点(在集群中)。我正在尝试将其与Google Appengine Instances进行比较。假设我在GAE上的应用程序应该处理以下内容:    - 10.000次/秒    - 运行1000个实例

我知道我们无法真正比​​较这些,但无论如何我们都要这样做。我想知道以下问题:

1。我想处理10.000个请求/秒(每个请求需要一个至少需要1-10分钟的永久连接):

a)为了可行,需要多少个GAE实例?

b)RabbitMQ需要多少个节点才能使用它?

2。我想与RabbitMQ进行比较,其中包含1.000 GAE实例:

a)1个GAE实例与RabbitMQ中的1个群集节点相比可以做多少工作?

第3。你会选择什么:

a)我知道你们都会说GAE,因为它很容易,已经准备好等等。

b)但话又说回来,我们是否愿意支付所有这些费用。更不用说谷歌有一些限制因为作者在这里谈论它们:http://www.carlosble.com/2010/11/goodbye-google-app-engine-gae/

感谢所有有价值的答案

2 个答案:

答案 0 :(得分:5)

GAE与RabbitMQ不具有可比性,因为您的问题几乎没有意义。 RabbitMQ只是消息传递,您很可能必须设置更多基础架构来支持您的用例。 GAE是一个完整的基础设施。也就是说,RabbitMQ每秒可以处理大量的消息。

也许您想要为移动游戏创建一个API来连接,以及一些应用程序逻辑来处理这些消息。您不会让游戏客户端连接到您的RabbitMQ服务器并直接与其他客户端通信。

在GAE上,您通常会有请求和即时回复。如果您需要持续时间更长的连接并允许您将消息推送到游戏客户端(不使用APN等),您可能需要考虑XMPP或websockets,因此除了GAE之外还需要其他东西,或者代替GAE。 Cloud Endpoints也可能值得一看。

博客文章中提到的一些限制现在已经解决。

我认为您需要更多地了解您的需求和架构,并且当您这样做时,您将更好地了解技术选择。选择像RabbitMQ这样的特定AMQP服务器是您在决定使用消息传递,如何使用消息传递,看到AMQP作为消息传递解决方案(ZeroMQ,XMPP是一些替代方案)之后做出的决定,并且需要找到快速有效的AMQP服务器。

答案 1 :(得分:1)

这是一个在EC2上使用RMQ并且报告“RabbitMQ在m1.xlarge上进行28k / sec进出直接消息,70k / sec扇出”的人。

https://twitter.com/rbranson/status/220399933583396865