使用 FastAPI 整合 gRPC 构建 Python 微服务

为何选择了 FastAPI 和 gRPC?


我们团队内部早期使用的 Django 开发的海外金融产品,后续考虑转型到微服务架构,做了一些调研之后,决定选择 FastAPI 和 gRPC。Python编程学习资料点击免费领取

FastAPI

完全从异步IO思维整合出来的框架,在 Web 领域异步IO的意义比较大。基于 Encode 团队(开发过大名鼎鼎的 Django REST Framework)的新作品:Starlette

gRPC

在 RPC 之块,Python 还有一个有名的框架 nameko,团队之前使用过,由于国内使用率不高,遇到问题时,难以解决方案,虽然 nameko 的 API 非常优雅,最终还是求稳地选择了 gRPC。gRPC 在云原生时代也是一个标配,流行度上有保证。

落地实践


简单地了解了一些 DDD 思维后,团队就拍着脑袋开始拆分服务啦。总共拆分了 8 个服务,每个服务同时提供 HTTP/RPC 服务。

类 Flask 框架的 FastAPI,拥有微框架的灵活性,但也是这种灵活性,让团队技术水平并不统一的开发者写出了各式各式的项目结构,交叉维护项目的时候,非常头痛。于是团队内部为了统一及简化 FastAPI & gRPC 的开发,迭代出了一个整合的框架:

你可能感兴趣的:(后端开发,python,微服务,django)