uvicorn-使用uvloop和httptools的闪电般快速的ASGI服务器实现

Uvicorn是使用uvloop和httptools的闪电般快速的ASGI服务器实现。

直到现在,Python仍缺乏用于asyncio框架的最低限度的低级服务器/应用程序接口。该ASGI规范填补这一空白,而且意味着我们现在能够开始在所有ASYNCIO框架建立一套共同的工具使用的。

Uvicorn当前支持HTTP / 1.1和WebSockets。计划支持HTTP / 2。

ASGI框架

您可以使用Uvicorn,Daphne或Hypercorn运行任何ASGI框架。

对于小型服务,您也可以直接编写ASGI应用程序。

Starlette

Starlette是一个轻量级的ASGI框架/工具包。

它是构建高性能异步服务的理想选择,并支持HTTP和WebSockets。

Django Channels

ASGI规范最初是设计用于Django Channels的。

通道与其他ASGI框架略有不同,它在线程框架后端上提供了异步前端。它允许Django支持WebSocket,后台任务和长期运行的连接,而应用程序代码仍在标准线程上下文中运行。

FastAPI

FastAPI是一个基于Starlette和Pydantic的API框架,其灵感来自以前的APIStar服务器版本。

您可以使用Python 3.6+类型声明编写API函数参数,并获得自动数据转换,数据验证,OpenAPI架构(带有JSON架构)和交互式API文档UI。

安装

pip install uvicorn 或者网盘下载uvicorn源文件包

与Gunicorn一起运行

Gunicorn是成熟的,功能齐全的服务器和流程管理器。

Uvicorn包含一个Gunicorn worker类,它使您可以运行ASGI应用程序,同时具有Uvicorn的所有性能优势,同时还为您提供Gunicorn的全功能过程管理。

这使您可以即时增加或减少工作进程的数量,正常重启工作进程或执行服务器升级而无需停机。

对于生产部署,我们建议将gunicorn与uvicorn worker类一起使用。

(0)

相关推荐