在documentation的部署部分,Gunicorn只能使用Flask-SocketIO的一个工作进程。我想知道部署flask-socket-io服务器的首选方法是什么?目前,我有一个常规的Flask应用程序,它使用从nginx代理传递的多工作进程gunicorn服务器。虽然我没有任何负载平衡,但我希望并发由多个gunicorn工作进程来处理,并且不会让我对websockets服务器有一点担心。
也许我误解了eventlet/greenlets的工作方式,但我认为uwsgi是我还没有探索过的唯一另一种选择。出于这个目的,值得投入到uwsgi的学习曲线中吗?
发布于 2020-09-08 00:33:11
Gunicorn和uWSGI都有一个非常有限的负载均衡器,不支持所需的粘性会话。
如果您想在这两个框架中使用多个worker,您需要在各自的端口上启动多个单worker服务器,然后在前端使用nginx作为负载均衡器。
除了nginx之外,您还需要添加一个消息队列(RabbitMQ、Redis等),所有这些进程都可以使用它来协调工作。
请参阅此处有关部署多台服务器的文档:https://flask-socketio.readthedocs.io/en/latest/#using-multiple-workers
https://stackoverflow.com/questions/63772012
复制相似问题