我们在nginx后面运行我们的python应用程序。 首先我们使用uWSGI,因为它是快速,可靠和易于部署的。 接下来,随着并发客户端(使用服务器发送的事件/事件stream)数量的增加,我们已经部分切换到gunicorn + gevent的应用程序。
目前,该应用程序是这样的服务:
我们应该保持这种设置还是有任何理由从uWSGI切换到gunicorn?
这实际上取决于多lessuWSGIfunction是您的基础设施的一部分。 WSGI的目的之一是允许从一个适配器轻松移动到另一个适配器。 如果你只使用uWSGI作为“WSGI”部分,你可以移动到gunicorn没有问题。
话虽如此,你应该考虑到uWSGI gevent支持是非常强大的,并且与uWSGI api高度集成(一旦你加载了gevent插件,服务器的所有阻塞内部都与gevent原语挂钩),所以也许你可以考虑它(除此之外,uWSGI卸载允许您将请求从一个实例移动到另一个,而不会阻塞前端工作者,因此您的其余api可以用作“具有更多逻辑的代理”)