我目前正在设计一个微服务架构,我对这个话题很陌生,这个问题似乎在任何地方都没有得到明确的回答。
是否可以使用 gRPC 在微服务(Azure 应用服务)之间进行通信?能否以某种方式使用 Containers 或 Kestrel 来支持 HTTP/2?
但是,在 Azure 中托管它们时,它似乎不起作用:
基本上是否可以在 Azure 中使用 gRPC,或者我是否必须使用 gRPC-Web 进行所有通信?或者是否有任何建议/替代方案,如 REST/SignalR?
我目前正在设计一个微服务架构,我对这个话题很陌生,这个问题似乎在任何地方都没有得到明确的回答。
是否可以使用 gRPC 在微服务(Azure 应用服务)之间进行通信?能否以某种方式使用 Containers 或 Kestrel 来支持 HTTP/2?
但是,在 Azure 中托管它们时,它似乎不起作用:
基本上是否可以在 Azure 中使用 gRPC,或者我是否必须使用 gRPC-Web 进行所有通信?或者是否有任何建议/替代方案,如 REST/SignalR?
你可以先阅读这篇文章。
ASP.NET CORE 上的 SIGNALR 与 GRPC – 选择哪一个
当前状态:
图1。
图2。
图 3。
图4。
弄清楚了。最终使用了 Dapr,一个微服务构建包。到目前为止它非常棒,并且它内置了 GRPC 支持
截至目前(2021 年 12 月),此问题仍然开放(自 2019 年 4 月起) https://github.com/dotnet/aspnetcore/issues/9020
Azure 应用服务使用 IIS/Windows/Http.sys。Http.sys 已融入操作系统,并不完全支持 gRPC 所依赖的 HTTP/2 尾随标头。