最近在想如何解决 grpc 微服务接口聚合的问题。
我这边现在有大量 grpc 微服务,其中有不少都在做接口聚合的事情。
调研了一番,准备用 Go 写个 GraphQL 转 gRPC 的网关。
GraphQL 转 gRPC 的好处:
- GraphQL 自带 schema ,对端友好,大家不用再为文档烦恼
- 显式选择字段,配合 gRPC fieldmask 可实现前后端双重省流
- 前端通过 query 参数,自己指定聚合 grpc 接口,很灵活
- 基于 gRPC 生成 GraphQL schema ,又没那么灵活,没有 N+1 问题
- 可在网关上实现限流、熔断、鉴权、链路、监控等功能
大家怎么看?欢迎给建议,提前感谢。