【问题标题】:Long polling scalable architecture in tornado/cyclone龙卷风/旋风中的长轮询可扩展架构
【发布时间】:2020-12-12 00:58:48
【问题描述】:

我想从一开始就使用 cyclone 或 tornado 在 python 中实现关于服务可扩展性的长轮询。客户可能会在几个小时内连接到此服务。我的概念:

客户端 HTTP 请求将由 NGINX 代理(充当负载平衡器)后面的多个龙卷风/旋风处理程序线程处理。请求将有多个数据队列:一个用于来自所有客户端的所有未处理请求,其余队列包含特定于每个已连接客户端的响应,这些响应先前由工作进程生成。当请求被传递到龙卷风/旋风处理程序线程时,请求数据将被发送到工作队列进行处理,然后由工作人员处理(连接到数据库等)。同时,龙卷风/旋风处理程序线程将查看特定于客户端的队列,并将带有数据的响应发送回客户端(如果队列中有一些等待)。请看图。

简单图:https://i.stack.imgur.com/9ZxcA.png

我正在考虑使用队列系统,因为有些请求可能对数据库非常繁重,有些请求可能会为其他客户端创建通知和消息。这是走向可扩展服务器的一种方式还是只是矫枉过正?

【问题讨论】:

    标签: python apache-kafka tornado long-polling cyclone


    【解决方案1】:

    在做了一些研究之后,我决定使用连接到 zeroMQ 的 tornado websockets。受此答案启发:Scaling WebSockets with a Message Queue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多