5

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

扫描 Channel 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更好的解决方案吗?我一直在考虑租用几台专用服务器,但这将达到数千/月...

提前致谢!

4

3 回答 3

5

要按顺序解决您的问题:

  1. 是的,它可以同时支持数以万计的用户。不过,我希望您不要期望它们所有人同时进行交互 - 每个用户事件扇出 10,000 次更新并不是非常实用。CPU 是计费配额,因此只要您为使用付费就没有上限。
  2. App Engine 数据存储在磁盘上,而不是在内存中。应用程序可以访问数据存储(持久性)和内存缓存(内存中,但是是缓存)。两者在整个应用程序中都是全局的,而不仅仅是实例。就像 CPU 配额一样,没有固定的上限 - 你得到你所支付的。
  3. 有一个核心 JRE 类的白名单,其中排除了一些对沙盒不安全的功能。除此之外,您可以随心所欲地运行。
  4. 我认为 App Engine 将非常适合您的应用程序,但视频流除外:目前没有任何基于 App Engine 的解决方案,因此您必须为此使用外部服务。App Engine 的一个主要优点是成本随使用量而变化,因此您只需为使用的内容付费。
于 2011-03-29T04:55:59.920 回答
4

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

  1. CPU使用率肯定有上限。我真的怀疑你的申请是否适合 GAE。阅读这个关于配额的页面。如果您正在处理视频,您可能会发现您在几分钟内就达到了每日 CPU 上限。您当然不会支持数以万计的用户。(也许在付费版本上你可以持续更长时间,但只能多出一个数量级——我仍然认为这是不可行的)。
  2. 还要检查数据存储大小的上限。您可以免费获得 1GB,但必须支付更多费用。您无权访问全局内存空间(每个请求都可能由不同的服务器处理),但您可以访问全局数据存储。
  3. 您可以使用的库是有限制的。请参阅JRE 类白名单。如果它不在该列表中,则它不可用。当然,如果它们是用纯 Java 编写的,您当然可以包含任何其他库,但如果它们使用本机代码则不能。
  4. 是的,我认为有更好的解决方案。

GAE 真的是为运行中小型交互网站而设计的,而不是做像视频流这样的高性能的东西。抱歉这么悲观:您可以根据我提供的信息和链接做出自己的决定。

于 2011-03-29T04:44:32.850 回答
0

关于 Channel API:注意消息大小限制:“消息限制为 32K”。也许可以将视频流分成小块,但我认为这不太实际或可行。还为客户端构建回原始流。那么就不能使用标准的例如 Flash 播放器。

于 2011-09-29T11:17:32.920 回答