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

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

对于NLB或“经典” ELB,找不到任何明确的答案。有什么提示吗?

最佳答案

在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建模和管理其服务间通信。

参考:


https://aws.amazon.com/about-aws/whats-new/2019/11/aws-app-mesh-now-supports-http2-and-grpc-services/
https://aws.amazon.com/app-mesh/
https://docs.aws.amazon.com/app-mesh/latest/userguide/what-is-app-mesh.html


amazon-web-services - 使用AWS负载均衡器之一负载均衡gRPC请求-LMLPHP

07-26 07:33