【问题标题】:The proper way to scale python tornado application扩展python龙卷风应用程序的正确方法
【发布时间】:2012-01-28 01:42:54
【问题描述】:

我正在寻找某种方法将一个 tornado 应用程序实例扩展到多个实例。我有 5 台服务器,想在每 4 个应用程序实例上运行。我不知道如何解决的主要问题 - 是以正确的方式在实例之间进行通信。我看到了接下来的方法:

  • 使用 memcached 共享数据。我认为这种方法不好,因为大量流量会通过 memcached 流向服务器。因此,将来可能会出现与交通相关的问题。
  • 在每个实例之间打开套接字。对我来说,维持这样的沟通方式太难了。
  • 使用ZeroMQ 之类的工具。我不熟悉这项技术。它可以成为在服务器之间扩展应用程序的方式吗?

【问题讨论】:

    标签: python memcached scalability tornado zeromq


    【解决方案1】:

    我实际上正在寻找类似的东西,我想出的想法是这样的。使用 Python 多处理模块 (http://docs.python.org/library/multiprocessing.html) 以这种方式在各个服务器上将进程链接在一起。然后使用 memcached 服务器处理特定于会话的数据。 (SessionID、IP 信息、用于将会话与特定用户以及他们正在使用的活动线程相关联的信息)其余的是从数据库实例驱动的数据。

    【讨论】:

      【解决方案2】:

      你可以为每台服务器运行一个 memcached 实例和一个 tornado 实例。使用 repcached 使 memcached 实例彼此“主复制”,这样每个 tornado 实例都可以从其机器访问 memcached 数据。四个服务器用于 tornado 和 memcached 实例,第五个用于运行 haproxy 以平衡其他服务器。

      www.haproxy.org/

      repcached.lab.klab.org/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 2015-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多