TCP 直通模式是否提供比 HTTP 侦听器更好的延迟性能

che*_*hen 3 load-balancing amazon-web-services amazon-elb

如果我有一个如下所示的应用程序:

客户端 <--> ELB <--> EC2

如果我将 ELB 设置为 TCP 直通模式而不是将其设置为 HTTP 侦听器,那么 E2E 延迟可能会更低吗?

我猜测 TCP 直通模式可能会使我的 E2E 延迟更好(更低)的原因是因为这种情况下的 ELB 几乎不会比以下情况造成任何额外的跃点成本:

客户端 <--> EC2

我的理解正确吗?如果没有,请带我过去。

Mic*_*bot 6

你的理解不太正确,因为TCP pass-through 是payload pass-through。平衡器接受连接,然后创建到实例的新连接,然后在连接上来回传递有效负载。流量仍然通过一个额外的设备——平衡器。

它不太可能对延迟产生实质性的影响,因为一旦请求在 HTTP 模式下被切入,行为是相似的,字节从一个连接复制到另一个连接。

TCP 模式的缺点是您失去了 HTTP 模式下的经典 ELB 能够做的事情:重用与实例的相同连接来处理多个客户端的顺序请求——它保持对实例开放的空闲连接,等待更多客户端请求到达,这意味着对实例发起的连接更少,许多请求可能使用已经建立的连接。

根据应用程序,ALB——应用程序负载均衡器——提供了进一步的优势,不仅重用实例连接,而且在浏览器端支持 HTTP/2,允许浏览器发送并发请求,这些请求被分散到实例作为并行 HTTP/1.1 请求。

或者,如果您确实需要 TCP 直通方案,您可能需要 NLB——网络负载平衡器。与其他两种平衡器类型不同,NLB 实际上修改网络行为以创建到实例的动态 NAT 转换——没有单独的系统处理流量,因为 NLB 是虚拟实体。Classic 和 Application 平衡器实际上(据任何人所知)是在“隐藏的”EC2 实例上实现的。