【问题标题】:Can you use gRPC/gRPC-Web to communicate between Microservices hosted on Azure?你可以使用 gRPC/gRPC-Web 在 Azure 上托管的微服务之间进行通信吗?
【发布时间】:2021-04-16 16:17:13
【问题描述】:

我目前正在设计一个微服务架构,我对这个话题很陌生,这个问题似乎没有在任何地方得到明确的回答。

是否可以使用 gRPC 在微服务(Azure 应用服务)之间进行通信?能否以某种方式使用 Containers 或 Kestrel 来支持 HTTP/2?

我有以下示例在本地托管时工作:

但是,在 Azure 中托管它们时,它似乎不起作用:

基本上是否可以在 Azure 中使用 gRPC,或者我是否必须使用 gRPC-Web 进行所有通信? 或者是否有任何建议/替代方案,例如 REST/SignalR?

【问题讨论】:

  • 如果我的解决方案对您有启发或帮助,请将我的回答标记为accepted,谢谢~

标签: azure azure-web-app-service microservices grpc grpc-web


【解决方案1】:

根据开发者的使用情况,不推荐使用gRPC。具体细节可以参考用户反馈和我下面截的一些截图。

您可以先阅读这篇文章。

SIGNALR VS GRPC ON ASP.NET CORE – WHICH ONE TO CHOOSE

当前状态:

  1. gRPC-Web for .NET now available

2。 Azure SignalR Service(Official recommendation)

开发者反馈:

gRpc support in Azure App Service

图 1。

图 2.

图 3。

图 4。

【讨论】:

    【解决方案2】:

    截至目前(2021 年 12 月),此问题仍未解决(自 2019 年 4 月起) https://github.com/dotnet/aspnetcore/issues/9020

    Azure 应用服务使用 IIS/Windows/Http.sys。 Http.sys 已嵌入操作系统,不完全支持 gRPC 所依赖的 HTTP/2 尾随标头。

    【讨论】:

      猜你喜欢
      • 2021-09-22
      • 2022-01-23
      • 2020-11-05
      • 2022-01-21
      • 2020-07-22
      • 1970-01-01
      • 2021-09-10
      • 2021-12-18
      • 2022-10-15
      相关资源
      最近更新 更多