【发布时间】: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