当前位置:   article > 正文

手把手教你部署一个FastAPI服务_fastapi 部署

fastapi 部署

本文使用的是FastAPI框架,从这篇文章中可以了解到:

  • 如何配置并将FastAPI应用部署到AIF上
  • 为什么以及何时应该使用 FastAPI、Gunicorn 和 Uvicorn
  • 如何以及为何设置 Gunicorn+Uvicorn 组合作为 ASGI 服务器

目录

一、直接上手

二、前言

三、技术框架介绍

3.1 FastAPI

3.2 Uvicorn

3.3 Gunicorn

3.4 ASGI/WSGI

3.4.1 ASGI

3.4.2 WSGI

3.4.3 对比

四、总结一下


一、直接上手

操作简单一步到位!

  1. from fastapi import FastAPIimport uvicorn
  2. app = FastAPI()
  3. @app.get("/")
  4. async def root():
  5. return {"message": "Hello World"}
  6. if __name__ == '__main__':
  7. 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 

  1. gunicorn main:app -b 0.0.0.0:8001 -w 4 -k uvicorn.workers.UvicornWorker
  2. # `-w` 表示 worker 数量,`-k` 表示使用的 worker 类型,`-b` 表示绑定的地址和端口。
  • Gunicorn 是成熟的,功能齐全的服务器,可以设定进程的类型,Uvicorn 可以作为 Gunicorn的进程类型
  • Uvicorn 内部包含有 Guicorn 的 workers 类,允许你运行 ASGI 应用程序,这些 workers 继承了所有 Uvicorn 高性能的特点。
  • Guicorn 可以进行进程管理,如果进程死掉会重启一个新的进程
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/887254
推荐阅读
相关标签
  

闽ICP备14008679号