- 前言
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第 1 篇 高性能网站构建
- 第 1 章 深入理解 DNS 原理与部署 BIND
- 第 2 章 全面解析 CDN 技术与实战
- 第 3 章 负载均衡和高可用技术
- 第 4 章 配置及调优 LVS
- 第 5 章 使用 HAProxy 实现 4 层和 7 层代理
- 第 6 章 实践 Nginx 的反向代理和负载均衡
- 第 7 章 部署商业负载均衡设备 NetScaler
- 第 8 章 配置高性能网站
- 第 9 章 优化 MySQL 数据库
- 第 2 篇 服务器安全和监控
- 第 10 章 构建企业级虚拟专用网络
- 第 11 章 实施 Linux 系统安全策略与入侵检测
- 第 12 章 实践 Zabbix 自定义模板技术
- 第 13 章 服务器硬件监控
- 第 3 篇 网络分析技术
- 第 14 章 使用 tcpdump 与 Wireshark 解决疑难问题
- 第 15 章 分析与解决运营商劫持问题
- 第 16 章 深度实践 iptables
- 第 4 篇 运维自动化和游戏运维
- 第 17 章 使用 Kickstart 完成批量系统安装
- 第 18 章 利用 Perl 编程实施高效运维
- 第 19 章 精通 Ansible 实现运维自动化
- 第 20 章 掌握端游运维的技术要点
- 第 21 章 精通手游运维的架构体系
最佳实践 15:4 层负载均衡
解决了数据链路层的负载问题之后,下面来看 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 种。
- 要求较高的吞吐量。
- 后端服务器的业务逻辑为私有实现,无法直接获取到应用层业务逻辑。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论