2016-01-19 3 views
4

Я не знаком с этим, и неправильно понимаю, как работает Gunicorn + Flask.Сколько экземпляров приложения Gunicorn создает

Когда я запускаю Gunicorn с 4 рабочими, он создает 4 экземпляра моего приложения Flask или создает 4 процесса, которые обрабатывают веб-запросы от Nginx и один экземпляр приложения Flask?

Если я делаю простую реализацию кеша памяти (например, словаря) в своем приложении, будет ли gunicorn создавать более одного экземпляра приложения и, следовательно, более одного экземпляра кеша?

ответ

5

Это создаст 4 рабочих-оружейников, чтобы справиться с одним флеш-приложением. Если вы запустите 4 экземпляра флеш-приложения (например, с докером), вам нужно будет запустить стрельбу 4 раза. Затем, чтобы обрабатывать все эти экземпляры фляг, вам понадобится сервер Nginx перед ним, действуя как балансировщик нагрузки.

Например, если один пользователь выполняет процедуру регистрации, которая занимает много времени из-за нескольких запросов к базе данных, у вас все еще есть другой рабочий для отправки запроса в экземпляр фляги.

Я получаю нашу точку зрения, но Flask не является WSGI готовым, что является стандартом. Gunicorn играет эту роль в производстве, поэтому вы получаете большую надежность вместо того, чтобы использовать стандартный сервер Werkzeug Develpment, который поставляется вместе с ним. Другими словами, Gunicorn - это всего лишь обертка на вашем фляжном объекте. Он просто обрабатывает запросы и позволяет Flask делать свое дело.

+0

Благодарим за ответ. Тогда в чем смысл этих рабочих, если колба может обрабатывать несколько запросов без Gunicorn? –

+0

Я нашел эту статью [click] (https://www.quora.com/What-are-the-differences-between-nginx-and-gunicorn). И там сказано, что Nginx + Gunicorn - это буфер, который фильтрует медленные запросы на соединение и статические запросы контента. Я прав? –

+0

@ KalyaganovAlexey см. Обновленный ответ – CESCO

Смежные вопросы