Amazon web services 使用AWS负载平衡器之一的负载平衡gRPC请求

Amazon web services 使用AWS负载平衡器之一的负载平衡gRPC请求,amazon-web-services,networking,load-balancing,grpc,amazon-elb,Amazon Web Services,Networking,Load Balancing,Grpc,Amazon Elb,我正在努力弄清楚是否可以使用(A/E/N)LBs之一来平衡gRPC流量。在我们的情况下,简单的循环就足够了 我已经了解到ALB不完全支持HTTP2,因此不能与gRPC一起使用。特别提到了缺乏对向下游发送HTTP2流量的支持,以及缺乏对拖车头的支持。这仍然是真的吗 无法找到任何关于NLB或“经典”ELB的明确答案。有什么提示吗?在AWS上使用gRPC有一些重大挑战。如果AWS应用程序负载平衡器不支持完整的HTTP/2,您必须启动并管理自己的负载平衡器。在AWS上,NLB和ELB都不是可行的替代方案

我正在努力弄清楚是否可以使用(A/E/N)LBs之一来平衡gRPC流量。在我们的情况下,简单的循环就足够了

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


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

在AWS上使用gRPC有一些重大挑战。如果AWS应用程序负载平衡器不支持完整的HTTP/2,您必须启动并管理自己的负载平衡器。在AWS上,NLB和ELB都不是可行的替代方案,这是由于与同一主机之间的通信量、动态端口映射、SSL终止复杂性以及TCP连接的次优客户端和服务器端轮询问题

gRPC展示了性能改进,但是,无论是使用诸如Nginx或Envilege之类的LBs,都需要大量的基础设施努力才能采用;或者用类似Istio的东西建立服务网络。另一种可能是使用厚客户端负载平衡,尽管这也需要额外的服务发现基础设施,如concur或ZooKeeper

AWS最近发布了一项名为AWS App Mesh的新服务。AWS应用程序网格支持HTTP2和gRPC服务

gRPC现在可以使用AWS应用程序Mesh对其服务间通信进行建模和管理

参考:


截至2020年10月29日,应用程序负载平衡器现在支持HTTP/2和gRPC负载平衡。发件人:

要在ALB上使用该功能,请选择HTTPS作为侦听器协议,选择gRPC作为目标组的协议版本,并将实例或IP注册为已配置目标组的目标。ALB提供丰富的基于内容的路由功能,允许您检查gRPC呼叫,并根据请求的服务和方法将呼叫路由到相应的目标组。在目标群体内,ALB将使用特定于gRPC的健康检查来确定目标的可用性,并提供特定于gRPC的访问日志来监控您的流量

对gRPC和端到端HTTP/2的支持适用于现有和新的应用程序负载平衡器,在所有AWS地区均不收取额外费用。要了解更多信息,请参阅、和ALB


经典ELBs和NLBs都应该有效。最大的决定因素可能是TLS的终止。ELB现在支持HTTP2吗?还是仍然是L4负载平衡?我对该主题的进一步研究表明,NLB在连接空闲超时[1]后重置前端连接,您需要保持活动状态[1]谢谢!这是一个有用的答案。您能否列出特定问题如何影响特定负载平衡器?开始使用网格可能太多了。目前看来,特拉菲克可能是我的最佳选择:特拉菲克可能是一个不错的选择。在第3层使用ELB/ALB,并将自己的兼容HTTP2的代理放在后面(特使、nghttpx、Linkedr、Traefik等)。在本次讨论中,您可以找到有关gRPC和负载平衡器的更多信息-gist.github.com/bojand/6a604f7e369d7c7d8c39eb77878a42c2I已经看过讨论,但我对网络知之甚少,我不确定结论。此外,讨论已经进行了1-2年,因此不确定这是否仍然是最新的结论是,要么使用服务网格(AWS应用程序网格,ISTIO,…),要么在第3层使用ELB/ALB,并将您自己的HTTP2兼容代理(特使,nghttpx,Linkerd,Traefik,…),为什么我要同时使用ELB和Traefik?