代码之家  ›  专栏  ›  技术社区  ›  Chetan

对于高流量的Web应用程序,您会选择什么实时框架?为什么?

  •  5
  • Chetan  · 技术社区  · 14 年前

    我们希望创建一个能够处理大量并发用户的实时Web应用程序。它的实时方面是将新消息推送到客户机,就像FriendFeed那样,还接受来自客户机的新消息,就像聊天系统一样。

    例如,我们有一些选项:运行 CodeIgniter nginx服务器后面的应用程序使用 Comet plugin ,使用python框架,例如 Twisted Tornado 使用 Orbited 与服务器等保持持久的连接。

    哪种设置最适合实时应用程序,而且也易于实现?

    附录 :我想回答的一个相关问题是——在扭曲/扭曲的Web或Tornado中更容易编写完整的实时Web应用程序?

    编辑 :ballpark numbers:我们计划从能够管理10000个并发连接开始,但是应该能够通过切换技术/添加服务器扩展到1000000个。我们将只推送文本消息,包括长文本消息。我们希望它的实时方面是真正的实时的,并且有一个<5秒的延迟。

    4 回复  |  直到 13 年前
        1
  •  3
  •   Chetan    14 年前

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

        2
  •  2
  •   cgbystrom    14 年前

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

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

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

        3
  •  1
  •   Alfredo Palhares    14 年前

    你看了吗 Zope 甚至 Plone (这个应该是CMS吗)?以处理诸如NASA和 more 但它在 Object-Oriented Database (威奇是这种表演的主要原因)我不知道你是否想要。

    zope和plone都是用python编写的。

        4
  •  1
  •   Stephan Eggermont    14 年前

    你还没有提供足够的信息来做出一个好的决定。大量并发用户互相推送新消息是远远不够的。只有文本?还是视频?只有短文本还是长文本?现在才写,还是上传?10000个并发用户还是10000.000?所有这些都是从一开始的,或者您是否有一些时间来提升/切换技术/构建数据中心?实时性有多强?延迟1秒还是几分钟? 您要允许多少邮件订阅?

    在这些问题的高端,您可以自己解决,只需编写自定义代码是唯一明智的方法。放宽一些限制使使用现有框架成为可能