性能提升4倍!使用Granian作为Django项目的ASGI服务器 - 程序设计实验室

性能提升4倍!使用Granian作为Django项目的ASGI服务器 - 程序设计实验室

💡 原文中文,约5700字,阅读约需14分钟。
📝

内容提要

本文介绍了DjangoStarter的新版本,使用Granian替代Daphne作为ASGI服务器,提升了性能。Granian支持静态文件,启动简单,性能测试显示其请求处理能力比Daphne高3-4倍,但仍低于uWSGI。总结认为,若不使用异步,WSGI仍是最佳选择。

🎯

关键要点

  • DjangoStarter的新版本使用Granian替代Daphne作为ASGI服务器,提升了性能。
  • Granian是一款高性能的Python Web服务器,支持ASGI、WSGI和RSGI,基于Rust编写。
  • Granian支持静态文件直出,启动简单,性能测试显示其请求处理能力比Daphne高3-4倍。
  • Granian的性能仍低于uWSGI,uWSGI在高并发下表现更佳。
  • Daphne在Django + ASGI下的性能表现差,延迟高且无法承受高并发。
  • Granian的性能比Daphne好,但在高并发下仍然有限。
  • uWSGI的性能显著优于Granian,单机可达650-750 req/s。
  • 如果不使用异步,WSGI仍是Django的最佳部署方式。
  • Granian的命令行参数结构简单,支持多种配置选项。

延伸问答

Granian与Daphne相比有什么优势?

Granian的请求处理能力比Daphne高3-4倍,支持静态文件直出,启动简单。

Granian的性能如何与uWSGI相比?

Granian的性能仍低于uWSGI,后者在高并发下可达650-750 req/s。

Granian的启动命令是什么?

启动命令为:granian --interface asgi --host 0.0.0.0 --port 8000 --static-path-route /static --static-path-mount ./static-dist config.asgi:application。

Daphne在高并发下的表现如何?

Daphne在高并发下表现差,延迟高且无法承受高并发,几乎完全顶不住压力。

Granian适合哪些框架使用?

Granian适合Django、FastAPI和Starlette等框架使用。

如果不使用异步,Django的最佳部署方式是什么?

如果不使用异步,WSGI仍是Django的最佳部署方式。

➡️

继续阅读