Gunicorn 创建了多少应用程序实例
How many instances of app Gunicorn creates
我是新手,误解了 Gunicorn + Flask 的工作原理。
当我 运行 Gunicorn 有 4 个工人时,它会创建我的 Flask 应用程序的 4 个实例,或者它会创建 4 个进程来处理来自 Nginx 的 Web 请求和一个 Flask 应用程序实例?
如果我在我的应用程序中简单实现内存缓存(例如字典),gunicorn 是否会创建多个应用程序实例并因此创建多个缓存实例?
它将创建 4 个 gunicorn worker 来处理一个 flask 应用程序。如果您旋转 4 个 Flask 应用程序实例(例如 docker),您将需要 运行 gunicorn 4 次。最后,为了处理所有这些 flask 实例,您需要在其前面安装一个 Nginx 服务器作为负载均衡器。
例如,如果一个用户正在执行注册例程,由于对数据库的多次查询而花费大量时间,您仍然有另一个工作人员将请求发送到 flask 实例。
我明白我们的意思了,但是 Flask 还没有准备好 WSGI,这是标准的。 Gunicorn 在生产中扮演了这个角色,因此您可以获得更高的可靠性,而不是使用它附带的开发标准 Werkzeug 服务器。换句话说,Gunicorn 只是你烧瓶对象的包装器。它只是处理请求,让 Flask 做它的事情。
我是新手,误解了 Gunicorn + Flask 的工作原理。
当我 运行 Gunicorn 有 4 个工人时,它会创建我的 Flask 应用程序的 4 个实例,或者它会创建 4 个进程来处理来自 Nginx 的 Web 请求和一个 Flask 应用程序实例?
如果我在我的应用程序中简单实现内存缓存(例如字典),gunicorn 是否会创建多个应用程序实例并因此创建多个缓存实例?
它将创建 4 个 gunicorn worker 来处理一个 flask 应用程序。如果您旋转 4 个 Flask 应用程序实例(例如 docker),您将需要 运行 gunicorn 4 次。最后,为了处理所有这些 flask 实例,您需要在其前面安装一个 Nginx 服务器作为负载均衡器。
例如,如果一个用户正在执行注册例程,由于对数据库的多次查询而花费大量时间,您仍然有另一个工作人员将请求发送到 flask 实例。
我明白我们的意思了,但是 Flask 还没有准备好 WSGI,这是标准的。 Gunicorn 在生产中扮演了这个角色,因此您可以获得更高的可靠性,而不是使用它附带的开发标准 Werkzeug 服务器。换句话说,Gunicorn 只是你烧瓶对象的包装器。它只是处理请求,让 Flask 做它的事情。