Flask SocketIO的首选生产设置是什么?对Gunicorn感到困惑,因为它只能由一个工人繁殖



从文档中的部署部分来看,Gunicorn只能使用Flask SocketIO处理1个工作进程。我想知道部署flask socket io服务器的首选方式是什么?目前,我有一个常规的Flask应用程序,它使用一个多工作人员的gunicorn服务器,该服务器是从nginx传递到的代理。虽然我没有任何负载平衡,但我希望并发性由多个gunicorn工作人员负责,而对于websockets服务器来说,没有这一点让我有点担心。

也许我误解了eventlets/greenlets的工作方式,但我认为uwsgi是我唯一没有探索过的其他选择。为了这个目的,值得了解uwsgi的学习曲线吗?

Gunicorn和uWSGI都有一个非常有限的负载均衡器,不支持所需的粘性会话。

如果你想在这两个框架中使用多个工作服务器,你需要在它们自己的端口上启动几个单独的工作服务器,然后在前面使用nginx作为负载均衡器。

除了nginx,您还需要添加一个消息队列(RabbitMQ、Redis等(,所有这些进程都可以使用它来协调工作。

请参阅此处有关部署多台服务器的文档:https://flask-socketio.readthedocs.io/en/latest/deployment.html#using-多工

相关内容

最新更新