高可用与负载均衡(2)之四层负载均衡的概念
preface
网络协议的四层负载均衡其实指的就是传输层。我们分析下4层负载均衡的数据格式。
四层负载均衡
所谓的四层负载均衡,就是说由负载均衡设备或软件通过TCP/UDP的header信息进行直接判断由哪个实际的后端服务器来实际处理该连接的,从而转发。在我们生产环境下用的最多的就是对目标端口进行调度,如有名的LVS软件。
四层负载均衡时序图
四层负载均衡的一般网络时序图如下所示
简要说明下:
- LB在收到客户端TCP SYN包之后,既可以进行负载调度。
- 向通过某种算法选择的后端服务器发送SYN包
- 后端服务器收到SYN包以后,回复SYN+ACK
- 负载均衡服务器回复SYN+ACK给客户端
- 客户端回复ACK
- 负载均衡器发送ACK给后端服务器。此时客户端,负载均衡器,后端服务器都处于established状态。
- 客户端开始请求数据,经过LB到后端服务器上
- 服务器返回数据给LB,LB再给client。
四层负载均衡特点
- 模型简单。
所谓模型简单就是LB不需要关系业务逻辑,只进行负载调度,网络转发以及后端服务器监控检测。 - 吞吐量大
依据模型简单这个特点,CPU处理逻辑简单,相对于更高层次的负载均衡,如七层负载,可以提供更大的吞吐量 - 应用范围广
工作在第四层,可以对任何应用做负载均衡,如DNS,HTTP,MYSQL等。
根据上面三个特点,应用场景主要如下:
- 吞吐量较高的情况
- 后端服务器的业务逻辑为他人私有逻辑,你无法触碰。