使用AWS负载均衡器之一负载均衡gRPC请求

时间:2020-02-11 07:50:23

标签: amazon-web-services networking load-balancing grpc amazon-elb

我正在尝试确定是否可以使用(A / E / N)LB之一来平衡gRPC流量。在我们的情况下,一个简单的循环就足够了。

我已经读到ALB不完全支持HTTP2,因此不能与gRPC一起使用。特别提到了缺乏对向下游发送HTTP2流量的支持以及对拖车报头的支持。还是真的吗?

找不到有关NLB或“经典” ELB的任何明确答案。有提示吗?

2 个答案:

答案 0 :(得分:8)

在AWS上使用gRPC面临一些重大挑战。在AWS Application Load Balancer上没有完全HTTP / 2支持的情况下,您必须启动并管理自己的负载均衡器。由于往返于同一主机的流量,动态端口映射,SSL终止复杂性以及TCP连接的次佳客户端和服务器端轮循问题,NLB和ELB都不是AWS上可行的替代方案。

gRPC表现出性能上的提高,但是,无论使用的是LB(例如Nginx还是Envoy),都要花费大量的基础架构努力才能采用。或建立与Istio之类的服务网格。另一种可能性是利用胖客户端负载平衡,尽管这还需要其他服务发现基础结构,例如Consul或ZooKeeper。

AWS最近宣布了一项名为 AWS App Mesh 的新服务。 AWS App Mesh支持HTTP2和gRPC服务

gRPC现在可以使用AWS App Mesh建模和管理其服务间通信。

参考:

enter image description here

答案 1 :(得分:2)

从2020年10月29日开始,应用程序负载平衡器现在支持HTTP / 2和gRPC负载平衡。来自the announcement

要使用ALB上的功能,请选择HTTPS作为侦听器协议,选择gRPC作为目标组的协议版本,然后将实例或IP注册为已配置目标组的目标。 ALB提供了基于内容的路由功能,这些功能使您可以检查gRPC调用,并根据请求的服务和方法将它们路由到适当的目标组。在目标组中,ALB将使用gRPC特定的运行状况检查来确定目标的可用性,并提供gRPC特定的访问日志来监视您的流量。

现有和新的应用程序负载均衡器均支持gRPC和端到端HTTP / 2,而在所有AWS区域中均无需额外付费。要了解更多信息,请参阅blog postdemo和ALB documentation