gRPC

    • 某些语言的 gRPC 运行时相对不成熟。Envoy 支持 gRPC 桥接过滤器,允许 gRPC 请求通过 HTTP/1.1 发送给 Envoy。然后,Envoy 将请求转换为 HTTP/2 以传输到目标服务器。该响应被转换回 HTTP/1.1。

    • gRPC-Web 由一个指定的支持,该过滤器允许 gRPC-Web 客户端通过 HTTP/1.1 向 Envoy 发送请求并代理到 gRPC 服务器。目前相关团队正在积极开发中,预计它将成为 gRPC 桥接过滤器的后续产品。

    当指定 gRPC 服务时,必须指定使用 客户端或 Google C ++ gRPC 客户端。我们在下面的这个选择中讨论权衡。

    Envoy gRPC 客户端是使用 Envoy 的 HTTP/2 上行连接管理的 gRPC 的最小自定义实现。服务被指定为常规 Envoy ,定期处理超时、重试、、负载平衡、故障转移、负载报告、、健康检查、。它们与 Envoy 的数据层面共享相同的连接池机制。同样,集群可用于 gRPC 服务。由于客户端是简化版的 gRPC 实现,因此不包括诸如 OAuth2 或 之类的高级 gRPC 功能后备。

    在大多数情况下,当你不需要 Google C++ gRPC 客户端的高级功能时,建议使用 Envoy gRPC 客户端。这使得配置和监控更加简单。如果 Envoy gRPC 客户端中缺少你所需要的功能,则应该使用 Google C++ gRPC 客户端。