【发布时间】:2012-01-12 01:49:11
【问题描述】:
我正在构建一个使用 Google App Engine (Python) 的多用户实时应用程序,它看起来像 Facebook 直播插件:https://developers.facebook.com/docs/reference/plugins/live-stream/
这意味着:同一网页上的 1 到 1 000 000 名用户可以执行立即通知其他所有人的操作。这就像一个群聊,但有很多人......
我的问题:
- App Engine 能够扩展到到那种数字吗?
- 如果是,你会如何设计它?
- 如果没有,您有什么建议?
现在,这是我的设计:
- 我正在使用 App Engine 频道 API
- 我将每个连接的用户都存储在内存缓存中
- 每次执行操作时,都会向任务队列中添加一个通知任务
- 任务在于从 memcache 中检索所有用户并向他们发送通知。
我知道我的瓶颈在于任务。每个人都通过相同的任务/请求得到通知。目前,对于 30 个连接的用户,它持续大约 1 秒,对于 100 000 个用户,您可以想象需要多长时间。
你会如何纠正这个问题?
非常感谢
【问题讨论】:
标签: google-app-engine real-time multi-user channel-api