【问题标题】:How does GRPC work in Cloud Foundry? GoRouter doesn't support HTTP2GRPC 在 Cloud Foundry 中如何工作? GoRouter 不支持 HTTP2
【发布时间】:2019-08-21 14:43:56
【问题描述】:
我需要使用 GRPC 进行 2 个微服务之间的相互通信。但是默认情况下,Cloud Foundry 使用不支持 Http2 的 Go 路由器。而且默认情况下,许多云代工厂安装不会暴露 TCP 端口本身。是否有任何解决方法或有任何接口可以支持这种情况?
我尝试过将 EUREKA 与弹簧靴一起使用。它仍然使用 HTTP1.1。
【问题讨论】:
标签:
spring-boot
cloud
cloud-foundry
grpc
http2
【解决方案1】:
你是对的,Gorouter 不支持 HTTP/2。要使 HTTP/2 和/或 gRPC 在 CF 上运行,您有两种选择。
如果您需要公共客户端(即 CF 外的客户端)连接到您的应用程序,则需要使用 TCP 路由。如果您的提供程序默认未启用此功能,请查找其他提供程序(请参阅this list of public providers,提示 Pivotal Web 服务将根据请求提供 TCP 路由)或自托管。
如果您只需要在 CF 上运行的应用程序之间使用 HTTP/2 和/或 gRPC,您可以使用容器到容器网络。当您与应用程序交谈时,没有任何限制(只要您正确打开所需的端口)。您可以使用 TCP、UDP 和任何基于它们构建的协议。有一些关于它是如何工作的细节here。
希望有帮助!