多级负载架构
设计关键点
性能需求、维护复杂度之间做取舍。
一可以去掉F5、LVS :
F5 是成本较高,LVS 是复杂,对于性能没那么高需求,可以去掉。
二 去掉ng:
服务网关+服务
适应于初创公司快速验证,内部的 小系统,通常不会这样,NG一般会保留,有些证书会好处理。
DNS
dns劫持,提出了httpdns.这种适合APP模式。由于绕过了运营商的LocalDNS,解决了域名解析异常。,大厂案例:【鹅厂网事】全局精确流量调度新思路-HttpDNS服务详解
GSLB
GSLB(Global Server Load Balancing):全局负载均衡,主要用于在多个区域拥有自己服务器的站点,为了使全球用户只以一个 IP 地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度
基于DNS的GSLB
优缺点
- 实现简单、实施容易、成本低
- 可能判断不准,例如用户手工指定了DNS服务器
基于HTTP redirect的GSLB
优缺点
- 能够拿到用户真实IP,判断准确
- 只适合HTTP业务
基于IP欺骗的GSLB
优缺点
- 适合所有业务
- 每次请求必须经过GSLB设备,性能低
- 一般配合HTTP redirect GSLB一起应用
F5 就是贵
LVS
lvs的模型:nat模型
反向代理,类似于 Nginx。
lvs的模型:dr模型
LVS 和服务器在同一企业网络
LVS-TUN模型
复杂均衡算法
轮询&随机
加权轮询
具体加权轮询算法
负载优先算法
性能优先
hash
常见负载均衡算法
lvs 负载均衡算法
业务级别负载均衡
通用负载均衡算法是基于请求的,业务级别的负载均衡是基于业务内容的,更灵活
例如蚂蚁的 LDC 架构,腾讯的 SET 单元化架构,截图的例子是spanner转发的
一次路由
箭头1:对于应该在本 IDC 处理的请求,直接映射到对应的 RZ 即可;
箭头2:不在本 IDC 处理的请求,Spanner 可以转发至其他 IDC 的Spanner。
二次路由
对于有些场景,A 用户的一个请求可能关联了对 B 用户数据的访问,比如 A转账给 B,A 扣完钱后要调用账务系统去增加 B 的余额。这时候就涉及到:
箭头3:跳转到其他 IDC 的 RZone;
箭头4:跳转到本 IDC 的其他 RZone。
数据路由:RZ 访问哪个数据库,是可以配置的,对应图中箭头5
负载均衡技巧——cookie
自定义HTTP Header
HTTP query string
服务器性能估算