返回介绍

最佳实践 15:4 层负载均衡

发布于 2025-04-20 17:44:41 字数 1432 浏览 0 评论 0 收藏

解决了数据链路层的负载问题之后,下面来看 4 层负载均衡技术。

从表 3-1 可以知道,网络协议的 4 层是指传输层,包括 TCP 和 UDP 等协议。

在 W.Richard Stevens 的著作 TCP/IP Illustrated Volume1:The protocols 中,对传输层协议进行了详细而专业的讲解,包括 TCP 和 UDP 的包格式、建立和结束、超时和重传等方面。在此不再进行赘述。

4 层负载均衡的数据格式

下面来看一个实际的 TCP 包例子(文件:Layer4_Load_Balancing_Example.pcap,Frame 1),如图 3-2 所示。

图 3-2 HTTP 请求的 TCP SYN 包信息

所谓的 4 层负载均衡,简单地说,就是由负载均衡设备或者软件(统一称为负载均衡器,Load Balancer)通过 TCP 或者 UDP 的 Header 信息进行直接判断由哪个实际的后端服务器来实际处理该连接,从而进行转发。在这个例子中,可以用于负载均衡的信息是源端口或者目的端口。在实践中,负载均衡器以目的端口进行调度为主。

4 层负载均衡的时序图

4 层负载均衡的一般网络时序图,如图 3-3 所示。

图 3-3 4 层负载均衡的一般网络时序图

简要说明如下。

1)负载均衡器(Load Balancer)在收到来自客户端(Client)TCP SYN 包后,即可进行负载调度。

2)向通过某种算法选择的后端服务器(Real Server)发送 SYN 包。

3)后端服务器收到 SYN 包后,回复 SYN+ACK。

4)负载均衡器回复 SYN+ACK 给客户端。

5)客户端回复 ACK。

6)负载均衡器发送 ACK 给后端服务器。此时,客户端、负载均衡器、后端服务器均达到 ESTABLISHED 状态。

7)客户端开始发送请求数据,经过负载均衡转发到后端服务器。

由此,可以总结出 4 层负载均衡有如下特点。

- 模型简单。负载均衡器不需要关心业务逻辑,只进行负载调度、网络转发和对后端服务器的健康检查。

- 吞吐量大。依据上条分析,CPU 处理逻辑简单,相对于更高层次的负载均衡,可以提供更大的吞吐量。

- 应用范围广。工作在 4 层,所以它几乎可以对所有应用做负载均衡,包括 HTTP、数据库、在线聊天室等。

4 层负载均衡的使用场景,可以总结为以下 2 种。

- 要求较高的吞吐量。

- 后端服务器的业务逻辑为私有实现,无法直接获取到应用层业务逻辑。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。