《负载均衡:高并发网关设计原理与实践》爱奇艺网络虚拟化团队 |PDF下载|ePub下载
创建
查看
23
类别: 科技
内容简介
· · · · · ·
《负载均衡:高并发网关设计原理与实践》分为10章。第1章,主要介绍负载均衡技术的背景、发展历史、现状、原理和不同产品。第2章~第5章,主要介绍四层负载均衡和七层负载均衡的工作原理、功能应用和实现方式,以及负载均衡技术在云计算、微服务领域中的应用。第6章~第8章,主要从协议和实现两个层面,深入介绍负载均衡的性能优化和安全设计,并详细介绍基于DPDK技术的高性能并发网关DPVS的设计与实现。第9章,结合负载均衡技术在爱奇艺的落地实践,主要介绍负载均衡服务的部署方法、监控告警、故障处理、性能分析等实例,以及负载均衡技术在云计算、边缘计算中的应用。第10章,简单地展望了未来负载均衡的一些发展趋势。
《负载均衡:高并发网关设计原理与实践》主要面向的是负载均衡服务的提供者和使用者、网络技术研发人员、后端服务开发人员,同时也面向对负载均衡技术感兴趣的广大技术爱好者。
作者简介
· · · · · ·
爱奇艺网络虚拟化团队
该团队主要负责爱奇艺四层网络流量负载均衡及网络出口代理、七层负载均衡及微服务网关、容器网络解决方案等服务,致力于高并发、大流量的网关开发和优化,开发了高性能四层负载均衡器——DPVS,并开源。DPVS被国内多个知名大型互联网企业使用。爱奇艺网络虚拟化团队将坚持技术创新、软件开源,希望能在高性能网关方面做出更多的贡献。
目录
· · · · · ·
第1章 负载均衡概述 1
1.1 从数据中心说起 1
1.1.1 数据中心的发展历史 2
1.1.2 超融合数据中心架构和大型互联网架构 3
1.2 负载均衡必要性分析 4
1.2.1 负载均衡的作用 5
1.2.2 场景需求 7
1.3 负载均衡的产生 8
1.3.1 负载均衡的历史 9
1.3.2 负载均衡的现状 10
1.3.3 负载均衡面临的挑战 10
1.4 负载均衡的原理 11
1.4.1 四层负载均衡的原理 11
1.4.2 七层负载均衡的原理 12
1.5 典型的负载均衡器介绍 13
1.5.1 LVS 13
1.5.2 Nginx 15
第2章 负载均衡详细介绍 18
2.1 四层负载均衡技术 18
2.1.1 经典四层负载均衡器 LVS 的相关术语 19
2.1.2 LVS 转发模式及配置实例 20
2.1.3 不同协议下的负载均衡 27
2.1.4 获取真实的客户端IP地址和端口信息 31
2.2 七层负载均衡技术 33
2.2.1 经典七层负载均衡器 Nginx 的部署架构 33
2.2.2 Nginx转发粒度控制 34
2.2.3 获取真实的客户端IP地址和端口信息 35
2.3 Real Server 调度算法 35
2.3.1 轮询(RR) 35
2.3.2 加权轮询(WRR) 37
2.3.3 最少连接调度(LC) 39
2.3.4 加权最少连接调度(WLC) 39
2.3.5 一致性哈希(CONNHASH) 41
2.3.6 连接模板 43
第3章 负载均衡功能 45
3.1 基本功能特性 46
3.1.1 负载均衡器的网络结构 47
3.1.2 提供外网VIP和流量均衡 50
3.1.3 提供内网VIP和IDC内部服务 54
3.1.4 使用SNAT集群提供外网访问 56
3.1.5 使用SNAT隧道服务无外网出口的IDC 58
3.1.6 服务隔离和安全控制 59
3.2 高可用性 60
3.2.1 使用Keepalived做健康检查 60
3.2.2 使用VRRP实现主备 62
3.2.3 使用ECMP实现集群化 64
3.2.4 使用网卡绑定扩展单网卡流量 65
3.3 高可扩展性 65
3.3.1 扩展负载均衡器 66
3.3.2 扩展后端服务器 69
3.4 使用BGP Anycast实现多个IDC负载均衡和机房灾备 72
第4章 现有负载均衡器比较 74
4.1 四层负载均衡器 74
4.1.1 硬件实现 74
4.1.2 软件实现:Linux Virtual Server(LVS) 75
4.1.3 软件实现方案对比 75
4.2 七层负载均衡器 76
4.2.1 硬件实现 76
4.2.2 软件实现:HAProxy 77
4.2.3 实现方案对比:F-Stack与Nginx 77
第5章 负载均衡与云计算 79
5.1 负载均衡与弹性计算 79
5.2 跨区域调度与容灾 80
5.3 API Gateway 82
第6章 网络协议优化 84
6.1 TCP协议优化 84
6.2 TLS/HTTPS协议优化 87
6.2.1 TLS/HTTPS协议的性能问题 87
6.2.2 Session ID及Session Ticket 89
6.2.3 False-Start 93
6.2.4 TLS1.3协议 94
6.2.5 硬件加速卡和计算分离 98
6.2.6 自动化数字证书管理 100
6.3 HTTP协议优化和HTTP2.0 101
6.4 基于UDP的传输协议优化 104
6.4.1 基于UDP的传输协议简介 104
6.4.2 QUIC协议优化 106
6.5 DNS协议优化 115
第7章 性能优化 117
7.1 主要性能指标 117
7.2 性能挑战与分析 120
7.2.1 C10K问题及C10M问题 120
7.2.2 LVS性能瓶颈分析 121
7.2.3 内核成为瓶颈的原因 123
7.3 高性能四层负载均衡关键技术 126
7.3.1 Kernel Bypass技术与DPDK 127
7.3.2 Share-Nothing思想 129
7.3.3 避免上下文切换 130
7.3.4 使用轮询而非中断 131
7.3.5 避免数据复制 131
7.3.6 其他技术 131
7.4 使用DPDK加速四层负载均衡 132
7.4.1 高性能负载均衡器的架构 133
7.4.2 高性能负载均衡器功能模块 136
7.4.3 数据流大图 144
7.4.4 项目开源的缘由和一些经验 147
7.5 七层负载均衡性能优化 149
7.5.1 Nginx调优 149
7.5.2 内核参数调优 152
7.5.3 利用最新内核的特性 154
7.5.4 利用硬件卸载 156
7.6 性能测试环境与数据 158
7.6.1 大并发测试环境 158
7.6.2 四层负载均衡性能数据 160
7.6.3 七层负载均衡性能数据 161
7.7 大容量网卡 163
第8章 安全设计 165
8.1 数据中心面临的安全问题 165
8.2 Syn-flood攻击与防御 165
8.3 DDoS与流量清洗 167
8.4 黑名单与ACL 167
8.5 WAF 168
第9章 负载均衡实践 171
9.1 服务配置部署 171
9.1.1 主备模式与集群模式 171
9.1.2 部署FullNAT外网集群 172
9.1.3 部署FullNAT内网集群 173
9.1.4 部署DR集群 175
9.1.5 部署SNAT集群 175
9.1.6 部署SNAT-GRE集群 177
9.1.7 部署Nginx集群 178
9.2 监控与故障分析 179
9.2.1 负载均衡监控指标及基本监控 179
9.2.2 监控数据成图 181
9.2.3 线上故障及排查实例 182
9.3 SLA简介 182
9.3.1 服务自助化 183
9.3.2 服务告警 183
9.3.3 流量异常检测 185
9.4 集群性能分析 186
9.5 负载均衡与 Kubernetes 云原生 188
9.5.1 负载均衡服务 189
9.5.2 Ingress 190
9.5.3 SNAT 出网访问 192
9.6 边缘计算 193
第10章 展望 195
· · · · · ·
1.1 从数据中心说起 1
1.1.1 数据中心的发展历史 2
1.1.2 超融合数据中心架构和大型互联网架构 3
1.2 负载均衡必要性分析 4
1.2.1 负载均衡的作用 5
1.2.2 场景需求 7
1.3 负载均衡的产生 8
1.3.1 负载均衡的历史 9
1.3.2 负载均衡的现状 10
1.3.3 负载均衡面临的挑战 10
1.4 负载均衡的原理 11
1.4.1 四层负载均衡的原理 11
1.4.2 七层负载均衡的原理 12
1.5 典型的负载均衡器介绍 13
1.5.1 LVS 13
1.5.2 Nginx 15
第2章 负载均衡详细介绍 18
2.1 四层负载均衡技术 18
2.1.1 经典四层负载均衡器 LVS 的相关术语 19
2.1.2 LVS 转发模式及配置实例 20
2.1.3 不同协议下的负载均衡 27
2.1.4 获取真实的客户端IP地址和端口信息 31
2.2 七层负载均衡技术 33
2.2.1 经典七层负载均衡器 Nginx 的部署架构 33
2.2.2 Nginx转发粒度控制 34
2.2.3 获取真实的客户端IP地址和端口信息 35
2.3 Real Server 调度算法 35
2.3.1 轮询(RR) 35
2.3.2 加权轮询(WRR) 37
2.3.3 最少连接调度(LC) 39
2.3.4 加权最少连接调度(WLC) 39
2.3.5 一致性哈希(CONNHASH) 41
2.3.6 连接模板 43
第3章 负载均衡功能 45
3.1 基本功能特性 46
3.1.1 负载均衡器的网络结构 47
3.1.2 提供外网VIP和流量均衡 50
3.1.3 提供内网VIP和IDC内部服务 54
3.1.4 使用SNAT集群提供外网访问 56
3.1.5 使用SNAT隧道服务无外网出口的IDC 58
3.1.6 服务隔离和安全控制 59
3.2 高可用性 60
3.2.1 使用Keepalived做健康检查 60
3.2.2 使用VRRP实现主备 62
3.2.3 使用ECMP实现集群化 64
3.2.4 使用网卡绑定扩展单网卡流量 65
3.3 高可扩展性 65
3.3.1 扩展负载均衡器 66
3.3.2 扩展后端服务器 69
3.4 使用BGP Anycast实现多个IDC负载均衡和机房灾备 72
第4章 现有负载均衡器比较 74
4.1 四层负载均衡器 74
4.1.1 硬件实现 74
4.1.2 软件实现:Linux Virtual Server(LVS) 75
4.1.3 软件实现方案对比 75
4.2 七层负载均衡器 76
4.2.1 硬件实现 76
4.2.2 软件实现:HAProxy 77
4.2.3 实现方案对比:F-Stack与Nginx 77
第5章 负载均衡与云计算 79
5.1 负载均衡与弹性计算 79
5.2 跨区域调度与容灾 80
5.3 API Gateway 82
第6章 网络协议优化 84
6.1 TCP协议优化 84
6.2 TLS/HTTPS协议优化 87
6.2.1 TLS/HTTPS协议的性能问题 87
6.2.2 Session ID及Session Ticket 89
6.2.3 False-Start 93
6.2.4 TLS1.3协议 94
6.2.5 硬件加速卡和计算分离 98
6.2.6 自动化数字证书管理 100
6.3 HTTP协议优化和HTTP2.0 101
6.4 基于UDP的传输协议优化 104
6.4.1 基于UDP的传输协议简介 104
6.4.2 QUIC协议优化 106
6.5 DNS协议优化 115
第7章 性能优化 117
7.1 主要性能指标 117
7.2 性能挑战与分析 120
7.2.1 C10K问题及C10M问题 120
7.2.2 LVS性能瓶颈分析 121
7.2.3 内核成为瓶颈的原因 123
7.3 高性能四层负载均衡关键技术 126
7.3.1 Kernel Bypass技术与DPDK 127
7.3.2 Share-Nothing思想 129
7.3.3 避免上下文切换 130
7.3.4 使用轮询而非中断 131
7.3.5 避免数据复制 131
7.3.6 其他技术 131
7.4 使用DPDK加速四层负载均衡 132
7.4.1 高性能负载均衡器的架构 133
7.4.2 高性能负载均衡器功能模块 136
7.4.3 数据流大图 144
7.4.4 项目开源的缘由和一些经验 147
7.5 七层负载均衡性能优化 149
7.5.1 Nginx调优 149
7.5.2 内核参数调优 152
7.5.3 利用最新内核的特性 154
7.5.4 利用硬件卸载 156
7.6 性能测试环境与数据 158
7.6.1 大并发测试环境 158
7.6.2 四层负载均衡性能数据 160
7.6.3 七层负载均衡性能数据 161
7.7 大容量网卡 163
第8章 安全设计 165
8.1 数据中心面临的安全问题 165
8.2 Syn-flood攻击与防御 165
8.3 DDoS与流量清洗 167
8.4 黑名单与ACL 167
8.5 WAF 168
第9章 负载均衡实践 171
9.1 服务配置部署 171
9.1.1 主备模式与集群模式 171
9.1.2 部署FullNAT外网集群 172
9.1.3 部署FullNAT内网集群 173
9.1.4 部署DR集群 175
9.1.5 部署SNAT集群 175
9.1.6 部署SNAT-GRE集群 177
9.1.7 部署Nginx集群 178
9.2 监控与故障分析 179
9.2.1 负载均衡监控指标及基本监控 179
9.2.2 监控数据成图 181
9.2.3 线上故障及排查实例 182
9.3 SLA简介 182
9.3.1 服务自助化 183
9.3.2 服务告警 183
9.3.3 流量异常检测 185
9.4 集群性能分析 186
9.5 负载均衡与 Kubernetes 云原生 188
9.5.1 负载均衡服务 189
9.5.2 Ingress 190
9.5.3 SNAT 出网访问 192
9.6 边缘计算 193
第10章 展望 195
· · · · · ·