赞
踩
本文使用的是FastAPI框架,从这篇文章中可以了解到:
- 如何配置并将FastAPI应用部署到AIF上
- 为什么以及何时应该使用 FastAPI、Gunicorn 和 Uvicorn
- 如何以及为何设置 Gunicorn+Uvicorn 组合作为 ASGI 服务器
目录
操作简单一步到位!
- from fastapi import FastAPIimport uvicorn
- app = FastAPI()
-
-
- @app.get("/")
- async def root():
- return {"message": "Hello World"}
-
- if __name__ == '__main__':
- uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)
启动命令
使用进程管理器确保你以弹性方式运行运行多个进程,你可以执行服务器升级而不会丢弃客户端的请求。
一个进程管理器将会处理套接字设置,启动多个服务器进程,监控进程活动,监听进程重启、关闭等信号。
1. 使用uvicorn
uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4
Uvicorn 提供一个轻量级的方法来运行多个工作进程,比如 `--workers 4`,但并没有提供进行的监控。
uvicorn 在单进程上使用异步协程是有优势的、但是如果接口方法是同步的则走的多进程模式、也就是 workers 的数量、 这个时候 uvicorn 不如 gunicorn、性能上会有些限制。
2. 使用gunicorn
- gunicorn main:app -b 0.0.0.0:8001 -w 4 -k uvicorn.workers.UvicornWorker
- # `-w` 表示 worker 数量,`-k` 表示使用的 worker 类型,`-b` 表示绑定的地址和端口。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。