DNS 全局负载均衡(GSLB)基本原理[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。
采用全局负载均衡(GSLB)的前提是在不同地区设立多个数据中心,业务已经做了分布式部署的规划,无论用户从哪个IDC访问都能得到相同的结果,或者用户基本不会出现跨区域流动访问的情况,只会访问就近IDC。
解析步骤
1.用户向本地DNS服务器发出查询请求,如果本地DNS服务器有该域名的缓存记录,如果本地DNS服务器有该域名的缓存记录,则返回给用户,否则进行第2步
2.本地DNS服务器进行递归查询,最终会查询到域名注册商处的授权DNS服务器
3.授权DNS服务器其返回一条NS记录给本地DNS服务器。根据授权DNS服务器上的不同设置,这条NS记录可能指向随机一个GSLB设备的接口地址或者是所有GSLB设备的接口地址
4.本地DNS服务器向其中一个GSLB地址发出域名查询请求,如果请求超时会向其他地址发出查询
5.GSLB设备选出最优解析结果,返回一条A记录给本地DNS服务器。根据全局负载均衡策略设定的不同可能返回一个或者多个VIP地址
6.本地服务器将查询结果通过一条记录返回给用户,并将缓存这条记录
通过DNS解析报文中的TTL(Time To Live)字段可以控制客户端缓存这条记录的时间,在缓存时间内客户端会使用旧的查询结果,当缓存时间超时后才可能重新发出查询,TTL值过大会导致故障发生时切换时间过长,TTL值太小会造成查询频繁,对设备和网络的压力增大。
局限性
请注意GSLB设备收到的DNS请求的源地址不是用户的地址而是用户所配置的本地DNS服务器地址,而GSLB的就进性探测是根据这个地址来判断的,在我国大多数ADSL拨号上网用户都能就近分配正确的数据中心,但是当用户用户通过4G移动网络上网的情况下,客户会一直使用归属地的DNS服务器,或这手动设定本地DNS而设置的DNS距离用户较远的情况,GSLB不能分配最佳的地址。这种情况很常见,国内有很多人使用google的公有dns或者opendns。
这种情况可以使用重定向来解决,SLB设备正式收到用户发来的请求时,会再次查找就进性表,当发现用户的最佳访问节点非自己时,通过http 302重定向来再次引导用户流量。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145900.html原文链接:https://javaforall.cn
相关文章
- linux load average,Linux 平均负载 Load Average 详解[通俗易懂]
- DNS负载均衡与CDN内容分发技术
- (译)Kubernetes 中的用户和工作负载身份
- apache做负载均衡_apache负载均衡配置
- 除了F5负载均衡、软硬件负载均衡,原来还有它!
- Linux基础:深入讲解Linux负载均衡LVS
- 优化Linux服务器负载:实现最佳性能(linux服务器负载)
- 实现Redis的负载均衡:分片与集群(redis分片与集群)
- 情况Oracle查看负载状况:深入解析(oracle查看负载)
- MySQL数据库实现负载均衡轮询(mysql数据库轮询)
- Redis:高负载承载能力测试(redis负载高)
- SQL Server实现简易负载均衡集群(sqlserver做集群)
- Redis队列实现负载均衡(redis队列负载均衡)
- Redis实现负载均衡调整负载权重(redis负载权重设置)
- 基于Redis的负载均衡集群构建(redis负载均衡集群)
- 简单测试Apache是如何完成负载均衡策略配置