首页 > 解决方案 > 微服务之间如何使用不同的交互协议,连接API网关?

问题描述

我现在正在构建我的第一个教育微服务项目。

所有服务都通过 REST 与客户端对话。另外,我想了解 gRPC 协议,因此我试图找到我的服务可以使用 gRPC 相互通信以及通过 REST 与 API Gateway 通信的方法。

为了获得良好的实践,我在不同的服务上使用了不同的框架——Express、Nest、Koa,没有一个不能同时以不同的方式公开 API(据我所知)。

那么有可能吗?或者我的架构应该只基于一种交互技术?我该如何解决?

谢谢!

标签: node.jsapirestmicroservicesgrpc

解决方案


实际上,有几种方法我可以做到。首先,NestJS 可以创建“混合”应用程序,可以同时提供 REST 和 gRPC (connectMicrocervice) API。其次,对于那些做不到的框架,解决办法是使用gRPC转HTTP JSON转码器(grpc生态有一些: https ://github.com/grpc-ecosystem/grpc-gateway

https://github.com/grpc-ecosystem/grpc-httpjson-transcoding )

所以,问题得到了回答)

感谢 Sebastian Hildebrandt 的关注。


推荐阅读