之前一直用 gunicorn、Flask 和 Celery 来实现前端请求的异步调用,但是在大并发的情况下,存在一定问题。主要还是 gunicorn 和 flask 的前端机制是 WSGI ,是一个prefork 的同步机制,导致并发性能不理想
希望前端请求部分采用异步的方式,如下
找来找去,FastAPI 和 unvicorn 就是一个理想的选择了
我们先看看 WSGI 和 ASGI 有什么区别
ASGI 是什么
ASGI 是相对 WSGI 来说的,WSGI 表示 Web Server Gateway Interface,主要作用是接收 HTTP 请求,并且调度对应的 Python app 程序。示意图如下:
WSGI 的机制是多进程同步机制。gunicorn 是一个 WSGI Server,它采用的就是这个机制。
Server Model
Gunicorn is based on the pre-fork worker model. This means that th