如何在 .net api 网关中使用 gRPC 服务?

Posted

技术标签:

【中文标题】如何在 .net api 网关中使用 gRPC 服务?【英文标题】:How to use gRPC service in .net api gateway? 【发布时间】:2021-04-12 09:54:11 【问题描述】:

我想通过 api 网关使用 gRPC 服务。 如何将它用于 .netcore 中的 gRPC?用Ocelot能做到吗?

【问题讨论】:

您是否刚刚尝试将请求路由到 gRPC 服务? 我无法使用 ocelot 库路由 grpc 服务。 【参考方案1】:

您不能将 Grpc 与任何 API 网关一起使用。通常,API Gateway 是为 Rest 设计的。 Rest 和 Grpc 非常不同。 Rest 适用于 Http1.1,GRPC 适用于 Http2。此外,Rest 和 GRPC 的行为也非常不同。

您可以查看此link 以获取有关此问题的详细信息。

因此,Ocelot 不适用于 GRPC。在 Web 中,您可以看到支持 GRPC 的 Ocelot 的官方实现。但这是不可接受的。这个实现只支持像 Unary 这样的 grpc 的一点属性。

这种结构在link 中非常有用

【讨论】:

非常感谢。

以上是关于如何在 .net api 网关中使用 gRPC 服务?的主要内容,如果未能解决你的问题,请参考以下文章

Envoy实现.NET架构的网关代理GRPC

ETCD:HTTP JSON API通过gRPC网关

设置 gRPC DB-less API 网关:415 Unsupported Media Type

API 网关 gRPC-Gateway V2 初探

云原生 API 网关,gRPC-Gateway V2 初探

gRPC 在.Net core中使用gRPC