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

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

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

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

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

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

客户端<--> EC2

我的理解正确吗?如果不正确,请指导我。

答案1

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

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

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

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

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

相关内容