整体架构
设计关键点
4级负载架构
3级负载架构
2级负载架构
技术剖析
DNS
应用
地理位置和机房级别的负载均衡
优点
标准协议
缺点
- 能力有限,不够灵活
- DNS劫持
- DNS缓存
HTTP-DNS
应用场景
App、客户端
优缺点
- 可以根据业务和团队技术灵活定制
- 非标协议、不通用,不太适合Web业务
架构设计关键点
- 智能调度模块可以独立,也可以嵌入到HTTP-DNS,一般独立成运维系统,因为智能调度系统有很多作用
- 正常的时候走DNS,异常的时候才走HTTP-DNS
- SDK会缓存HTTP-DNS解析结果
GSLB
定义
GSLB(Global Server Load Balancing):全局负载均衡,主要用于在多个区域拥有自己服务器的站点,为了使全球用户只以一个 IP 地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度
应用场景
适合超大规模业务,多地甚至全球部署的业务,例如Google、Facebook等
优缺点
- 功能强大,可以实现就近访问,容灾切换,流量调节
- 实现复杂
基于DNS的GSLB
优缺点
- 实现简单、实施容易、成本低
- 可能判断不准,例如用户手工指定了DNS服务器
基于HTTP redirect的GSLB
优缺点
- 能够拿到用户真实IP,判断准确
- 只适合HTTP业务
基于IP欺骗的GSLB
优缺点
- 适合所有业务
- 每次请求必须经过GSLB设备,性能低
- 一般配合HTTP redirect GSLB一起应用
F5
LVS
项目介绍
开源项目,Linux2.4版本集成到内核
性能
内核级别的负载均衡,基本能跑满千兆网卡带宽,性能量级10~100万请求
LVS-NAT
基本原理
LVS绑定VIP,客户端向 VIP 发起请求连接,LVS在经过调度之后选取 RS,将本地端口与 RS 的端口做映射,然后 RS 返还数据给LVS,LVS将数据返还客户端
应用场景
反向代理,类似于 Nginx,Internet 不知道内部服务器的任何信息
LVS-DR
基本原理
LVS绑定VIP,客户端向 VIP 发起请求连接,LVS修改目的 mac 地址为某个服务器 RS,RS 服务器处理后直接返回结果给客户端
应用场景
LVS 和服务器在同一企业网络
LVS-TUN
基本原理
LVS绑定VIP,客户端向 VIP 发起请求连接,LVS通过隧道技术转发给某个 RS 服务器,RS 服务器处理后直接返回结果给客户端
应用场景
LVS 和服务器在不同企业网络,企业网络分为多个子网
F5/LVS/Nginx对比
F5 | LVS | Nginx | 备注 | |
---|---|---|---|---|
基本原理 | 硬件实现 | Linux内核实现 | 软件实现 | 硬件>内核>应用 |
流量类型 | L4 | L4 | L7,仅限HTTP | NA |
成本 | 超贵 | 一般,需要CPU较好的服务器 | 便宜 | NA |
功能 | 超强,负载均衡、防火墙、高速缓存… | 网络负载均衡 | 反向代理 | NA |
性能量级 | 100万~1000万 | 10万~100万 | 5万~10万 | 以HTTP请求为例,Spring Gateway大约2~3万 |