基于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mac如何修改host文件「建议收藏」

    Mac如何修改host文件「建议收藏」首先开启一个文件夹,点击上方【前往】->【前往文件夹】。 输入“/private/etc/hosts”,点击【前往】。 自动开启“etc”文件夹,找到【hosts文件】,并将其拉到桌面上才能修改桌面上的hosts文件。 “右键”桌面上hosts文件,选择【打开文件的应用程序】,使用【文字编辑】开启。 开启编辑hosts文件。 编辑完后就把桌面上的…

    2022年10月12日
    0
  • getopt getopts

    getopt getopts一.getopt1.使用getoptoptstringoptionsparametersoptstring定义了命令行有效的选项字母,还定义了哪些选项字需要参数,需要参数的选项后面加:即可;如果指定了一个不在optstring中的选项,默认情况下,getopt命令会产生一条错误消息,如果想要忽略,可以加上-q选项;getoptab:cd-a-bte

    2022年5月4日
    42
  • python解释器找不到_python解释器路径

    python解释器找不到_python解释器路径Pycharm“nothingtoshow”ininterpreters(解决Pycharm无法找到编译器的问题)问题描述解决方案问题原因解决过程问题描述暑假放假两周,两周没写代码,打开PyCharm发现编译器找不到了(PythonInterpreterNothingtoshow),程序自然也无法运行,如图:解决方案解决方案来自StackOverflow,原出处:link.(https://stackoverflow.com/questions/67297284/pycharm

    2022年8月26日
    3
  • 无法完成要求,暂存盘已满_无法使用因为暂存盘已满

    无法完成要求,暂存盘已满_无法使用因为暂存盘已满无法完成请求,因为暂存盘已满。那么就要找到并打开暂存盘。解决方案:1、打开ps软件,点击首选项,点击暂存盘2、暂存盘修改,换成其他的任意一个盘符即可。点击确定完成。…

    2022年10月22日
    0
  • pytest fixtures_Pytest

    pytest fixtures_Pytestfixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月30日
    6
  • java工厂模式三种详解(部分转载)

    java工厂模式三种详解(部分转载)工厂方法模式(FactoryMethod)工厂方法模式分为三种:1、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:举例如下:(我们举一个发送邮件和短信的例子)首先,创建二者的共同接口:[java]viewplaincopypublicinterfaceSender{ publicvoidSe…

    2022年7月20日
    12

发表回复

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

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