如何让flask像express.js一样每秒处理25k请求

Cap*_*ast 4 python flask gunicorn

所以我正在制作一个大型社交媒体应用程序,但我有一个问题,该选择 Flask 还是express.js 框架,我非常喜欢 Flask,但它无法处理太多请求。Express.js 每秒可以处理大约 25k 个请求(google)。那么,无论如何,有没有办法让flask使用gunicorn每秒处理25k个请求,目前我正在使用这个命令,$ gunicorn -w 4 -b 0.0.0.0:5000 your_project:app但它一次只能处理4个请求。还有一个问题,Flask 能否同时处理 100 万用户。我应该选择express.js吗,因为它可以处理25k请求

Kyl*_*son 6

您可以使用多线程或gevent来增加gunicorn的并发性。

选项1 多线程

例如:

gunicorn -w 4 --threads 100 -b 0.0.0.0:5000 your_project:app
Run Code Online (Sandbox Code Playgroud)

--threads 100表示每个进程 100 个线程。

-w 4意味着 4 个进程,因此-w 4 --threads 100意味着一次 400 个请求

选项2 gevent 工作者

例如:

pip install gevent
gunicorn -w 4 -k gevent --worker-connections 1000 -b 0.0.0.0:5000 your_project:app
Run Code Online (Sandbox Code Playgroud)

-k gevent --worker-connections 1000意味着每个 gevent 工作进程有 1000 个协程。

-w 4意味着 4 个进程,因此-w 4 -k gevent --worker-connections 1000意味着一次 4000 个请求。

更多信息,可以参考我的博文:https ://easydevguide.com/posts/gunicorn_concurrency