3

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

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

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

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

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

a) 需要多少个 GAE 实例才能实现?

b) RabbitMQ 需要集群中多少个节点才能工作?

2. 我想与具有 1.000 个 GAE 实例的 RabbitMQ 进行比较:

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

3. 你会选择什么:

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

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

感谢所有有价值的答案

4

2 回答 2

5

GAE 无法与 RabbitMQ 相提并论,以至于您的问题几乎没有意义。RabbitMQ 只是消息传递,您很可能必须设置更多基础架构来支持您的用例。GAE 是一个完整的基础架构。也就是说,RabbitMQ 每秒可以处理大量的消息。

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

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

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

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

于 2012-07-05T08:53:24.347 回答
1

这是一个在 EC2 上使用 RMQ 并报告“RabbitMQ 在 m1.xlarge 上执行 28k/sec 输入输出直接消息传递,70k/sec fanout”的人。

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

于 2012-07-10T05:34:58.883 回答