2010-11-15 49 views
5

我们希望创建一个实时的Web应用程序,该应用程序应该能够处理大量的并发用户。它的实时方面是将新消息推送到客户端,像FriendFeed一样,同时也接受来自客户端的新消息,如聊天系统。什么实时框架,你会选择一个高流量的Web应用程序,为什么?

例如,一些选项我们是:运行使用Comet plugin Nginx上服务器后面CodeIgniter应用程序,使用一个Python框架如TwistedTornado,使用Orbited保持与服务器的持久连接等

哪种设置可以扩展实时应用程序的最佳性能,并且易于实现?

附录:一个相关的问题我很乐意回答 - 它更容易编写完整的实时Web应用程序 - Twisted/TwistedWeb或Tornado?

编辑:球场号码:我们计划开始时可以管理10,000个并发连接,但是以后可以通过切换技术/添加服务器扩展到1,000,000。我们只会推送短信,包括长文本消息。我们希望它的实时性能是真正的实时性,延迟5秒。

回答

3

经过大量研究,我们决定采用Node。它应该相当容易实现,并且应该可以很好地扩展,如果我们开始拥有数百万并发用户,那么我们将研究更具可扩展性和复杂性的解决方案。

+6

现在有点晚了 - 如果你不介意分享经验,我有兴趣了解Node,Chetan如何为你做好准备? – danjah 2012-07-31 12:02:31

1

你看看Zope甚至Plone(altought这一个是CMS)?是着名的处理大型交通网站,如美国航空航天局和more,但它运行在Object-Oriented Database (这是这种perfomance的主要原因),我不知道你是否想要。

Zope和Plone都是用Python编写的。

1

您尚未提供足够的信息来作出正确的决定。大量的并发用户互相推送新消息是远远不够的。只有文字?或者还有视频?只有短文本或长文本?只写现在,或上传? 10.000个并发用户或10.000.000?所有这些都是从一开始,还是您有时间加速/切换技术/构建数据中心?实时性如何足够好? 1秒延迟或几分钟? 你想允许多少条消息订阅?

在这些问题的高端,你是自己的,只是编写自定义代码是唯一明智的方法。放宽一些约束条件可以使用现有的框架

+0

谢谢,我已经添加了一些球场号码的问题。希望这应该使决定更清楚。 – Chetan 2010-11-15 22:54:22

2

我建议你看看Planet Framework(免责声明,我是其中一位开发人员)。

它提供了一个完整的堆栈解决方案,包含客户端和服务器端模板,跨浏览器推送功能和数据库分片。基于gevent,它提供了正常的阻塞语义(与node.js相对)和Python的简单性。

我们目前只接受邀请,但我们所有的文档都可以公开获取。我建议您在网站上申请邀请,因为我们不断批准新用户。

相关问题