整体架构
USER ---- DNS/CDN ---- TDO
|
|
BGW
|
|
BFE
DNS/CDN/TDO
- DNS:Domain Name System,域名到 IP
的映射服务,找到服务地址
- CDN:Content Delivery
Network,内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,使用户就近选择服务器获取内容,降低网络拥塞,提高用户访问速度和命中率。快速响应
- TDO:Traffic Distribution
Optimizer,流量分配优化,流量的负载均衡,通过 traceroute
发掘对用户而言,速度最优的 IDC,每周更新 CDNDNS 域名和
IP 地址映射关系
- 读取 CDNDNS 日志,按照 C 类地址对日志中用户的 IP
地址进行聚合
- 每天 3 次对聚类的结果使用 traceroute 探测到达对应 IP
地址类的时间,并把当天 3 次结果求平均值
- 根据每天每个 IDC 探测出到达 IP 地址的时间,每周更新
CDNDNS 的域名和 IP 地址映射
- TDO 和
GTC,最终的生效,都是需要将域名解析配置,下发到 DNS
服务器
shifen.baidu.com:
域名的CNAME,多个域名的中继代理,方便域名管理、切流
BGW
BGW:Baidu
GateWay,百度智能网关,四层负载均衡平台,分析IP层和传输层,提供统一的VIP。
VIP 中的 virtual 一次是相对于 client
来说,隐藏了复杂的请求处理响应过程,在外界看来就像是访问了单个服务器。
- 4 层的负载均衡
- NAT模式:在转发和返回数据包时,修改其中的源IP和目的IP。
- DR模式
- TUN模式
- RS 保活机制
- 攻击防御
BFE
Baidu
Frontend,百度统一前端,做七层的负载均衡,处理HTTP,流量的接入和转发,全局流量调度,安全和防攻击,数据分析
根据HTTP请求首部,确定应该将请求的集群、子集群和具体实例。
集群、子集群和实例
upstream myapp1 {
server backend1.example.com weight=5;
server backend2.example.com;
server backend3.example.com down; # 标记为不可用
server backend4.example.com backup; # 备用服务器
}
整体流程
- 用户查询域名 ip
- 本次缓存命中返回,未命中进行 DNS 查询
- CDN 根据实施和用户信息返回响应最快的 vip
- 用户向 vip 发起 TCP 请求
- 通过 BGW 攻击检测后,根据负载策略选择 RS
下发请求
- BFE 解析 http 报文,通过攻击检测后,调度后端 PR
下发请求
- 接收结果逐层返回用户
注意点
负载均衡
- 硬件方法:NetScaler这种,一般是非IT企业
- DNS 轮询
- 负载均衡器
- 四层LB
- LVS(Linux
Virtual Server)
- 七层LB