原理

采用全局负载均衡(GSLB)的前提是在不同地区设立了多个数据中心,并不是所有的互联网服务都能做GSLB,前提是业务已经做了分布式部署的规划,无论用户从哪个IDC访问都能得到相同的结果,或者用户基本不会出现跨区域流动访问的情况,只会访问就近IDC,或者有一套入口调度机制,能将用户调度到所属的节点。

现在很多CDN也都提供动态内容的加速,只不过这个加速只是数据传输上的优化,可以看做给你做了很多个转发节点,最终业务处理压力还是源站承担。如果不具备分布式部署改造的条件,只是要解决远距离客户访问慢问题,可以考虑CDN。

目前很多DNS服务商都提供了智能DNS服务,智能DNS可以通过多种负载均衡策略来将客户端需要访问的域名解析到不同的数据中心不同的线路上,比如通过各运营商分省IP地理信息数据来判断用户的就进性,并结合健康检查策略(通常是发一个固定的http请求)来分配访问量。

第三方智能DNS的不足在于通过公网健康检查可能会受到运营商网络拥塞的影响,目前国内域名服务商提供的服务目前还无法感知线路繁忙程度和后端服务器真实负载情况。除了使用智能DNS解析软件或者云服务,多数对可靠性和性能要求高的用户都会使用硬件的全局负载均衡解决方案。全局负载均衡设备以通过更丰富的维度来判断用户就进性,形成就进性表,除了分地域IP数据库外,还可以通过TTL、用户访问延时、服务器负载情况等来判断。

下例的全局负载均衡解决方案中,域名服务商处将域名的NS记录指向有智能DNS解析功能的GSLB设备,然后由GSLB设备来进行A记录解析。如果在多地部署了GSLB设备,它们都应该添加到NS记录中以保证高可用性,域名服务商处轮询地返回GSLB地址或者一次性返回全部地址。GSLB设备会对自己所在的IDC后端服务器以及其他IDC公网IP进行健康检查,健康检查结果会通过自有协议在不同IDC的GSLB设备之间同步,最终根据全局负载均衡策略来选择最优的地址解析给用户。

解析的步骤示意如下图:

  1. 用户向本级配置的本地DNS服务器发出查询请求,如果本地DNS服务器有该域名的缓存记录,则返回给用户,否则进行第2步;
  2. 本地DNS服务器进行递归查询,最终会查询到域名注册商处的授权DNS服务器,这里可能有多个步骤,图中只反映最后一步;
  3. 授权DNS服务器返回一条NS记录给本地DNS服务器。根据授权DNS服务器上的不同设置,这条NS记录可能是指向随机一个GSLB设备的接口地址或者是所有GSLB设备的接口地址;
  4. 本地DNS服务器向其中一个GSLB地址发出域名查询请求,如果请求超时会向其它地址发出查询;
  5. GSLB设备选出最优解析结果,返回一条A记录给本地DNS服务器。根据全局负载均衡策略设定的不同可能返回一个或多个VIP地址;
  6. 本地服务器将查询结果通过一条A记录返回给用户,并将缓存这条记录。

通过DNS解析报文中的TTL(Time To Live)字段可以控制客户端缓存这条记录的时间,在缓存时间内客户端会使用旧的查询结果,当缓存时间超时后才可能重新发出查询,TTL值过大会导致故障发生时切换时间过长,TTL值太小会造成查询频繁,对设备和网络的压力增大。

局限性

请注意GSLB设备收到的DNS请求的源地址不是用户的地址而是用户所配置的本地DNS服务器地址,而GSLB的就进性探测是根据这个地址来判断的,在我国大多数ADSL拨号上网用户都能就近分配正确的数据中心,但是当用户用户通过4G移动网络上网的情况下,客户会一直使用归属地的DNS服务器,或这手动设定本地DNS而设置的DNS距离用户较远的情况,GSLB不能分配最佳的地址。这种情况很常见,国内有很多人使用google的公有dns或者opendns。

这种情况可以使用重定向来解决,SLB设备正式收到用户发来的请求时,会再次查找就进性表,当发现用户的最佳访问节点非自己时,通过http 302重定向来再次引导用户流量。

原文地址:http://www.cnblogs.com/foxgab/p/6900101.html

如果觉得本文对您有帮助,请扫描后面的二维码给予捐赠,您的支持是作者继续写出更好文章的动力!

转载于:https://www.cnblogs.com/foxgab/p/6900101.html

DNS全局负载均衡(GSLB)基本原理相关推荐

  1. DNS 全局负载均衡(GSLB)基本原理

    采用全局负载均衡(GSLB)的前提是在不同地区设立多个数据中心,业务已经做了分布式部署的规划,无论用户从哪个IDC访问都能得到相同的结果,或者用户基本不会出现跨区域流动访问的情况,只会访问就近IDC. ...

  2. 全局负载均衡GSLB

    http://www.zdnet.com.cn/wiki-GSLB GSLB GSLB 是英文Gobal Server Load Balance的缩写,意思是全局负载均衡. 作用:实现在广域网(包括互 ...

  3. 基于DNS的全局负载均衡(GSLB)详解(上篇)

    基于DNS的全局负载均衡(GSLB)详解(上篇) 前言 DNS流量负载和容灾切换功能的意义 单数据中心 双数据中心/两地三中心 云扩展 前言 DNS解析现在已经成为互联网访问的第一步,访问网络资源必然 ...

  4. Citrix NetScaler 全局负载均衡解决方案

    Citrix NetScaler 全局负载均衡解决方案 思杰(Citrix)系统亚太有限公司 2008年5月 目 录 第1章 项目概述... 3 第2章 思杰系统(Citrix)公司简介... 4 2 ...

  5. 为什么基于DNS的全局负载均衡(GSLB)不起作用?

    Why DNS Based Global Server Load Balancing (GSLB) Doesn't Work 作者:Pete Tenereillo 3/11/04 Copyright ...

  6. 一文搞懂CDN(内容分发网络),涉及HTTP静态资源、DNS支持、GSLB(全局负载均衡)、云服务器

    一.什么是 CDN ? 全称是 Content Delivery Network/Content Distribution Network,翻译过的意思是 内容分发网络 .CDN让用户实现了对资源的就 ...

  7. CDN技术之--全局负载均衡(GSLB)

    负载均衡就是智能调度 全局负载均衡(GSLB)的负载均衡主要是在多个节点之间进行均衡,其结果可能直接终结负载均衡过程, 也可能将用户访问交付下一层次的(区域或本地)负载均衡系统进行处理. GSLB最通 ...

  8. 全局负载均衡(GSLB)的实现方案

    What is GSLB Global Server Load Balancing 中文:全局负载均衡 SLB(Server load balancing)是对集群内物理主机的负载均衡,而GSLB是对 ...

  9. 全局负载均衡与CDN内容分发

    作者:等不到的口琴 来源:https://www.cnblogs.com/Courage129/p/14363627.html CDN简介CDN的全称是Content Delivery Network ...

最新文章

  1. 初识python教学反思_[python第一课]初识python
  2. 记事本 换行符_Windows 记事本再度上架 Microsoft Store
  3. 研究性论文的图注应该怎么写?
  4. 详解Dart中如何通过注解生成代码
  5. PWN-PRACTICE-BUUCTF-22
  6. 开发者说:如何使用插件降低上传文件部署服务的复杂度
  7. python的def语句_【零基础学Python】def语句,参数和None值
  8. 伦敦帝国学院提出局部特征提取新模式D2D:先描述后检测
  9. java里if为真_Excel:如果所有条件都为真,则嵌套的IF语句返回所有真值
  10. 各种版本mysql驱动包下载地址
  11. 硬盘 : ATA、ATAPI的含义
  12. 工具说明书 - Windows资源监视器: Resource Monitor
  13. html——点击a标签打开新的标签页
  14. excel多个窗口独立显示_办公软件操作技巧060:如何快速切换excel工作簿
  15. altium 交叉线_关于各个设备,用直通线还是交叉线连接的详解
  16. 机械制图及计算机绘图试题库,机械制图及计算机绘图试题库版(90页)-原创力文档...
  17. 【算法学习笔记07】贪心算法(Greedy Algorithm)
  18. 美团饿了么外卖五折优惠券蓝海项目,已有人推广赚7万,赶紧赚一波。(饿了么美团外卖红包小程序搭建教程)
  19. MinGW MinGW-W64介绍
  20. 开源是不是程序员悲剧的根源?

热门文章

  1. mysql 命令行参数
  2. 跑了10千米,再一次伤了膝盖
  3. 图片热点的使用,html area 的用法
  4. poj3264Balanced Lineup(RMQ)
  5. 【Vegas原创】巧用GridView ButtonField列
  6. ceph auth get_CPB羽梦幻境体验展来了!快来GET限量产品!
  7. (14)System Verilog范围随机函数
  8. (07)VHDL实现闪灯
  9. (28)FPGA面试题寄生效应
  10. python算法应用(四)——多维缩放