应用Gunicorn创建了多少个实例

时间:2016-01-19 09:55:16

标签: python flask parallel-processing gunicorn

我对此很陌生,误解了Gunicorn + Flask的工作原理。

当我使用4名工作人员运行Gunicorn时,它会创建我的Flask应用程序的4个实例,或者它将创建4个处理来自Nginx和Flask应用程序实例的Web请求的进程?

如果我在我的应用程序中简单地实现了内存缓存(例如字典),那么gunicorn会创建多个app实例,因此会创建多个缓存实例吗?

1 个答案:

答案 0 :(得分:7)

它将创建4名枪炮工人来处理一个烧瓶应用程序。如果你旋转一个烧瓶应用程序的4个实例(例如用docker)你将需要运行gunicorn 4次。要处理所有这些烧瓶实例,你需要一个Nginx服务器作为负载均衡器。

例如,如果一个用户正在执行一个注册例程,由于对数据库的多次查询需要花费大量时间,那么仍然有另一个工作人员将请求发送到flask实例。

我明白了我的观点,但Flask并没有准备好WSGI,这是标准。 Gunicorn在生产中扮演着这个角色,因此您可以获得更高的可靠性,而不是使用随附的Develpment标准Werkzeug服务器。换句话说,Gunicorn只是你烧瓶对象的包装。它只是处理请求,让Flask做它的事情。