Google Application Engine是一个适合高流量聊天网站的好平台吗?

时间:2011-03-29 04:31:17

标签: google-app-engine video-streaming high-load web-traffic chatroom

我正在寻找创建一个高流量的聊天网站,可能是视频流与服务器上发生的一些图像处理。

通过渠道API扫描(http://code.google.com/appengine/docs/python/channel/overview.html)让我有希望在没有AJAX投票的情况下完成此操作,并且一般意见是GAE是非常可扩展的。

我仍然有一些顾虑:

1)它是否可以支持数万个同时实时互动的用户而不会滞后?是否有CPU使用上限?

2)我(可能)将它写在J2EE框架之上。 GAE是否保证每个新请求都可以访问全局内存数据存储区,只要应用程序在服务器上运行(Java语言中的“ServletContext”)并且可能存储数十亿字节的数据,该数据存储区就可用了?有记忆上限吗?

3)完整的J2SE和J2EE堆栈是否可用?我能包括我想要的任何图书馆吗?

4)对于这类问题,有没有比GAE更好的解决方案?我一直在考虑租用几台专用服务器,但这将达到数千/月......

提前致谢!

3 个答案:

答案 0 :(得分:5)

按顺序解决您的问题:

  1. 是的,它可以支持成千上万的并发用户。我希望你不要期望他们所有人同时互相交流,但是每个用户活动散布10,000个更新并不是非常实用。 CPU是一种收费配额,因此只要您支付使用费用就没有上限。
  2. App Engine数据存储区位于磁盘上,而非内存中。应用程序可以访问数据存储(持久性)和内存缓存(内存中,但缓存)。两者都是整个应用程序的全局,而不仅仅是实例。就像CPU配额一样,没有坚定的上限 - 你可以得到你付出的代价。
  3. 核心JRE类的白名单排除了一些对沙箱不安全的功能。除此之外,你可以运行你想要的任何东西。
  4. 我认为App Engine非常适合您的应用,但视频流除外:目前还没有任何基于App Engine的解决方案,因此您必须使用外部服务。 App Engine的一个主要专业是成本随着使用而扩展,因此您只需支付使用的费用。

答案 1 :(得分:4)

首先,请注意有免费版和付费版。我假设你要支付额外的配额?

  1. CPU使用率肯定存在上限。我真的怀疑你的申请是否适合GAE。阅读有关配额的this page。如果您正在进行视频处理,您可能会发现在几分钟内达到每日CPU上限。你当然不会支持成千上万的用户。 (也许在付费版本上你可以持续更长时间,但只有一个数量级更多 - 我仍然认为这是不可行的。)
  2. 同时检查数据存储区大小的上限。你获得1GB免费,并且需要支付更多费用。您无权访问全局内存空间(每个请求可能由不同的服务器处理),但您可以访问全局数据存储区。
  3. 您可以使用的库有限制。请参阅JRE class whitelist。如果它不在该列表中,则不可用。如果它们是用纯Java编写的,那么当然可以包含任何其他库,但如果它们使用本机代码则不能。
  4. 是的,我认为有更好的解决方案。
  5. GAE真正用于运行中小型互动网站,而不是用于播放视频流等高性能内容。很抱歉这么悲观:你可以通过我提供的信息和链接自己决定。

答案 2 :(得分:0)

关于Channel API:请注意邮件大小限制:“邮件限制为32K”。也许有可能将视频流分成小块,但我认为它不太实际或不可行。 也为客户端构建原始流。然后没有标准例如可以使用Flash播放器。