L4 与 L7 负载平衡中每个客户端的连接数

L4 与 L7 负载平衡中每个客户端的连接数

我正在读HAProxy 常见问题解答

其中提到第 4 层连接建立在客户端和服务器。

在下一节中,第 7 层负载均衡器充当代理,这意味着它维护两个 TCP 连接:一个与客户端,一个与服务器。

我认为即使 L4 LB 也会维持 2 个连接 - 一个与客户端,一个与服务器。

为什么事实并非如此?

答案1

除了代理之外,还有更多的负载均衡技术;这是有关负载均衡的常见问题。阅读 HAProxy 的简介.txt特别是关于“负载平衡和负载平衡器的快速介绍”主题的调查。

HAProxy 是一个代理。在 TCP 模式下,它会像您期望的那样链接传入和传出套接字。再次引用 intro.txt:

  - a TCP proxy : it can accept a TCP connection from a listening socket,
    connect to a server and attach these sockets together allowing traffic to
    flow in both directions

在第 4 层,还可以仅基于 IP + TCP 将原始流转发到几个不同的下一跳。您可以将这些基于数据包的负载均衡器称为花哨路由器。这不是 HAProxy 等 TCP 代理所做的。

L7 位于应用层,支持更多功能。几乎普遍以代理形式实现。


一些设计同时具有 L4 和 L7 负载均衡器,以实现冗余和可扩展性。将极快的(通常)无状态 L4 与 L7 代理的奇特功能相结合。

举个例子,看看 Vincent Bernat 的实验室使用 Linux 实现多层负载平衡. ECMP 路由器,L4 获取所需的连接路由,L7 在后端前面提供一些花哨的功能。

相关内容