猜你喜欢
负载均衡:高并发网关设计原理与实践

负载均衡:高并发网关设计原理与实践

书籍作者:爱奇艺网络虚拟化团队 ISBN:9787121428869
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3926
创建日期:2023-03-15 发布日期:2023-03-15
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书分为10章。第1章,主要介绍负载均衡技术的背景、发展历史、现状、原理和不同产品。第2章~第5章,主要介绍四层负载均衡和七层负载均衡的工作原理、功能应用和实现方式,以及负载均衡技术在云计算、微服务领域中的应用。第6章~第8章,主要从协议和实现两个层面,深入介绍负载均衡的性能优化和安全设计,并详细介绍基于DPDK技术的高性能并发网关DPVS的设计与实现。第9章,结合负载均衡技术在爱奇艺的落地实践,主要介绍负载均衡服务的部署方法、监控告警、故障处理、性能分析等实例,以及负载均衡技术在云计算、边缘计算中的应用。第10章,简单地展望了未来负载均衡的一些发展趋势。

本书主要面向的是负载均衡服务的提供者和使用者、网络技术研发人员、后端服务开发人员,同时也面向对负载均衡技术感兴趣的广大技术爱好者。

作者简介

爱奇艺网络虚拟化团队

该团队主要负责爱奇艺四层网络流量负载均衡及网络出口代理、七层负载均衡及微服务网关、容器网络解决方案等服务,致力于高并发、大流量的网关开发和优化,开发了高性能四层负载均衡器——DPVS,并开源。DPVS被国内多个知名大型互联网企业使用。爱奇艺网络虚拟化团队将坚持技术创新、软件开源,希望能在高性能网关方面做出更多的贡献。


编辑推荐
适读人群 :所有需要了解负载均衡知识的互联网从业者!

负载均衡在高可用的分布式系统架构中处于核心地位,如何支持高并发、如何提升服务可用性成为互联网从业者的必修课,而本书可谓系统介绍负载均衡的首著!

爱奇艺网络虚拟化团队基于自己的负载均衡实践编撰本书,从理论到实践,系统地介绍了负载均衡的发展历史、功能、原理、技术、应用和优化等。

本书不仅详细介绍了负载均衡的性能优化和安全设计,同时也深入讨论了多种常见网络协议的性能优化。

作者也分享了对DPVS开源的缘由,以及和开源社区人员一起共建DPVS的一些经验,对开源项目有很大的参考价值!

前言

前 言

负载均衡(LoadBalance)的字面意思是将工作负载分担到多个工作单元上进行执行,它建立在现有网络结构之上,是构建分布式服务、大型网络应用的关键组件。近十几年来,负载均衡技术层出不穷,令人眼花缭乱。如果问身边的技术人员什么是负载均衡,我们可能会得到许多不同的答案。运维人员可能认为负载均衡是单位购买的F5设备,网络管理员可能认为负载均衡是DNS分地域的用户调度,内核研发人员可能认为负载均衡是Linux内核提供的LVS功能,后端开发人员可能认为负载均衡是Nginx、HAProxy等为后端业务提供的具有反向代理功能的软件。似乎大家都知道负载均衡是什么,但又很难给出一个统一的标准答案。事实上,负载均衡技术广泛应用于从数据中心到业务实现的各个层次。不同技术分工下的工程师对负载均衡的理解如盲人摸象,很难窥探这个技术的全貌。

本书的目的并不是详尽地列举出所有负载均衡技术,而是通过对常用负载均衡技术的分析,希望读者了解负载均衡技术的架构和原理,并在此基础上指导读者设计、优化自己的负载均衡器,构建自己的负载均衡服务。概括来说,本书有两个主要目的,一个是介绍常用的负载均衡技术的功能、原理、应用和服务构建方案;另一个是介绍负载均衡服务的性能优化,以满足日益增长的业务流量和并发访问需求。希望读者在阅读本书后,不仅能够理解、掌握负载均衡技术的基础原理,而且能够独立构建和维护一套稳定、高可用、高性能的,可以在生产环境下使用的负载均衡服务。此外,研发人员可以通过本书介绍的负载均衡性能优化技术改善服务的性能,从而达到节约成本、提高生产效率的目的。


目录
目 录
第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
产品特色