基于DNS的全局负载均衡(GSLB)详解(下篇)[通俗易懂]

基于DNS的全局负载均衡(GSLB)详解(下篇)[通俗易懂]基于DNS的全局负载均衡(GSLB)详解(下篇)前言基于DNS的流量调度和宕机切换流量负载方式DNS流量调度准确性健康检查和宕机切换基于DNS的混合流量负载(调度)前言上篇我们介绍了DNS流量负载和容灾切换功能的意义如果你想了解DNS访问的整个流程,可以先查看DNS的基本原理(可查看文章DNS原理及解析过程详解)。对于更好地讲解全局流量负载有所帮助。基于DNS的流量调度和宕机切换流量负载…

大家好,又见面了,我是你们的朋友全栈君。

前言

上篇我们介绍了DNS流量负载和容灾切换功能的意义,下面我们将继续介绍基于DNS的全局负载均衡的工作原理和相关知识。
如果你想了解DNS访问的整个流程,可以先查看DNS的基本原理(可查看文章DNS原理及解析过程详解)。对于更好地讲解全局流量负载有所帮助。

基于DNS的流量调度和宕机切换

流量负载方式

现在我们对基于DNS的流量负载方式进行简单介绍,域名国家工程研究中心(ZDNS)在这方面拥有许多研究成果(了解更多)。

  1. 基于地理位置的流量负载,当拥有多数据中心时,比如南方的用户可能访问到上海的数据中心,北方的用户会访问到北京的数据中心,这是一个基本的基于地理限制的流量负载或者智能解析举例。
  2. 基于运营商流量负载策略,不同的运营商会到业务系统不同线路接入的服务器上,从而避免用户跨网访问的问题。
  3. 基于权重的链路负载,一个域名可能对应两个IP地址,这两个IP按照一定的比例解析给用户进行访问。比如一个IP地址对应初始数据中心,一个IP地址对应备数据中心的流量。希望初始数据中心的流量达到70%,备数据中心的流量达到30%
  4. 还有一些自定义的负载方式。主要是一些基于流量探测的负载,比如对于流量系统进行实时探测,哪个区域的系统性能最好,会优先使用哪个地区的资源。这是通过实时的健康检查和探测做动态的流量负载的调度。

DNS流量调度准确性

关于刚才讲到的DNS调度方式,大家有没有想过我们怎么样才能保证调度有足够的准确性。我们将从三个角度进行讨论,分别为:权威侧、用户侧、公共能递归侧。

权威侧
DNS权威服务器如何识别这个用户是来自于哪个运营商或者来自于哪个区域的呢。

  • 其实是基于权威解析服务器上的一个精准的IP地址库,利用地址库进行判断用户区域及用户所属运营商,再进行流量调度。
  • 这个IP地址库划分的粒度精细化,能够精确把某个省或某市的用户调度到相应的数据中心。
  • 同时支持对IPV6地址库的识别,实现双栈化。

用户侧
电脑用户端上要配置正确的运营商的递归DNS尽量不使用公共递归,从而减少调度时间。

公共能递归侧
支持使用Edns+SubNet的协议,这样可以缓解客户端配置公共递归导致的解析不准确的问题。

健康检查和宕机切换

当某数据中心出现宕机情况,为了保证用户的正常使用,要进行宕机切换操作。但是对于DNS来讲是无法感知宕机的,这时就需要额外的健康检查探测手段。在额外的服务器上部署健康检查的节点,也是基于云的架构,从不同的探测节点探测业务的可用性。通常情况下探测方式可以是基于HTTP、HTTPS、PING、TCP等,从而实现实时的发现和切换的功能。进行宕机切换时,切换可用节点的选择基于地理位置、权重、运营商、性能等。

基于DNS的混合流量负载(调度)

在这里插入图片描述

如上图所示,刚才讲的DNS上的流量负载和实时探测和自动切换的功能,这个功能已经不再仅限于最初的DNS功能,域名和IP地址的关系数据库,它承载了更多的流量负载的系统。用户访问站点的时候,站点后面的资源比较丰富,有本地基于网络流量的负载、服务器、CDN的资源等。基于DNS的全局流量调度系统变成一个流量枢纽和桥梁。一旦DNS瘫掉,后端的系统无论再怎么强壮都不再可用了。所以DNS对于业务系统的重要性是与日俱增的,已经变成一个核心的业务系统。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137880.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • postman汉化包_python模拟post请求

    postman汉化包_python模拟post请求Postman安装(汉化Postman)一、下载Postman下载地址:https://www.postman.com/downloads/二、下载汉化包下载地址:https://github.com/hlmd/Postman-cn/releases注意:中文包的版本和postman的版本一定要一致,否则会出现汉化后打不开postman的情况postman设置里能看到版本号:汉化包下对应的就可以:三、解压到对应目录四、重启P…

    2022年9月30日
  • 软件开发的一些概念

    10.关系数据库(RelationalDatabases)关系数据库因为在大规模Web服务上缺乏可扩充性而颇受微词,然而,关系数据库仍然是近20年来计算机技术中最伟大的成就。关系数据库对处

    2021年12月23日
  • python自学基础1week

    python自学基础1week一、python老师介绍二、为什么要学习python?三、学习python有前途吗?疗程1:语言基础疗程2:网络编程疗程3:web基础开发疗程4:算法&设计模式疗程5:pytho

    2022年7月6日
  • Office2016简体中文专业版32/64

    Office2016简体中文专业版32/64仅供参考链接:https://pan.baidu.com/s/1-rUA6atszrSxkm1aMLO7AQ提取码:1jne

    2022年7月19日
  • Platform SDK工具集

    Platform SDK工具集PlatformSDK工作集,PlatformSDK目录下包含很多工具。这些工具在调试、测试、性能测试、可执行文件查看等方面有比较强的功能。depends.exe:系统调用依赖查看工具,可以用来查看可执行文件的导入表和导出表。WinDbg:功能强大的调试器。rc.exe:资源编译器。mc.exe:消息编译器。bind.exe:绑定DLL,将DLL导出的函数的地址存储到地址表

    2022年5月4日
  • activity中onResume方法详解[通俗易懂]

    activity中onResume方法详解[通俗易懂]onResume比如做一个音乐播放程序,在播放过程中,突然有电话打进来了,这时系统自动调出电话,而你的音乐播放程序置于后台,触发了onPause方法。当你电话结束后,关闭电话,又自动回到音乐播放程序,此时,触发onResume方法,这时,如果你之前在onPause的时候记录了播放点,就可以在onResume方法里来继续播放。onResume方法是Activity第一次创建时重新加载实例时调用…

    2022年5月6日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号