全局负载均衡(GSLB,Global Server Load Balance),是基于DNS协议,可以为放置在不同地理位置的服务器集群提供多种负载均衡功能的一种负载均衡产品,主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。
GSLB的工作原理流程说明:
1)终端向本地配置的DNS系统查询应用服务域名XXX.myappname.com;
2)如果本地DNS系统中存在XXX.myappname.com的应用服务,直接返回应用服务ip;如果本地DNS系统没有XXX.myappname.com的缓存,那么本地DNS会向DNS根服务器发送此域名的DNS查询请求。同时DNS根服务器,会根据查询域名的后缀,向本地DNS服务器响应.com所在的DNS服务器
3)本地DNS收到DNS根响应的.comDNS服务器地址后,会向.comDNS服务器发起XXX.myappname.com的域名查询请求。同时.comDNS服务器收到请求,会向本地DNS服务器响应XXX.myappname.com所在的DNS服务器。
4)本地DNS收到.comDNS服务器响应的DNS服务器地址后,再次向DNS服务器发起XXX.myappname.com查询请求,同时DNS服务器收到DNS查询请求后,在自己的数据库中发现XXX.myappname.com通过CNAME指向了域名app12345678.gslb.ctyun.cn,因此DNS服务器会向本地DNS响应app12345678.gslb.ctyun.cn。
5)本地DNS收到域名权威DNS响应的app12345678.gslb.ctyun.cn域名后,会再次向GSLB服务器发起app12345678.gslb.ctyun.cn查询,同时GSLB在收到请求后,会根据运行机制和预配置策略向本地DNS响应最终应用服务的地址。
6)本地DNS服务器将最后一次查询获得的IP地址作为XXX.myappname.com的最终地址,返回给终端用户,同时缓存在本地,方便下次用户查询可以直接返回结果。
7)终端用户收到本地DNS服务器响应的IP地址后,直接向应用服务发起网络连接,开始进行业务通信。
GSLB系统一般由auth-DNS模块、GSLB模块和Healthcheck模块组成,其中:
1)auth-DNS是基于DNS协议实现的简化版权威DNS服务器,实现将终端用户访问解析到应用服务的地址池集合。
2)GSLB模块处理负载均衡算法、负载均衡策略,根据IP的服务健康状态选择合适的IP地址返回给终端。
3)HealthCheck模块,是指在全国多个地点部署探测服务,从多个地区对地址池内的多个应用服务地址发起健康探测,系统收集所有探测节点的健康探测结果,进而获取服务地址的可用状态。当应用服务地址出现故障时,HeathCheck模块检测到异常情况,同时HeathCheck模块会和DNS模块进行交互,将异常地址从向用户返回的应用服务地址列表中暂时删除;如果HeathCheck模块检测到应用服务的地址恢复正常,则DNS模块会将此地址恢复至应用服务的地址列表中并返回给用户。
如下图: