大家好,又见面了,我是你们的朋友全栈君。
上篇我们介绍了DNS流量负载和容灾切换功能的意义,下面我们将继续介绍基于DNS的全局负载均衡的工作原理和相关知识。 如果你想了解DNS访问的整个流程,可以先查看DNS的基本原理(可查看文章DNS原理及解析过程详解)。对于更好地讲解全局流量负载有所帮助。
现在我们对基于DNS的流量负载方式进行简单介绍,域名国家工程研究中心(ZDNS)在这方面拥有许多研究成果(了解更多)。
关于刚才讲到的DNS调度方式,大家有没有想过我们怎么样才能保证调度有足够的准确性。我们将从三个角度进行讨论,分别为:权威侧、用户侧、公共能递归侧。
权威侧 DNS权威服务器如何识别这个用户是来自于哪个运营商或者来自于哪个区域的呢。
用户侧 电脑用户端上要配置正确的运营商的递归DNS尽量不使用公共递归,从而减少调度时间。
公共能递归侧 支持使用Edns+SubNet的协议,这样可以缓解客户端配置公共递归导致的解析不准确的问题。
当某数据中心出现宕机情况,为了保证用户的正常使用,要进行宕机切换操作。但是对于DNS来讲是无法感知宕机的,这时就需要额外的健康检查探测手段。在额外的服务器上部署健康检查的节点,也是基于云的架构,从不同的探测节点探测业务的可用性。通常情况下探测方式可以是基于HTTP、HTTPS、PING、TCP等,从而实现实时的发现和切换的功能。进行宕机切换时,切换可用节点的选择基于地理位置、权重、运营商、性能等。
如上图所示,刚才讲的DNS上的流量负载和实时探测和自动切换的功能,这个功能已经不再仅限于最初的DNS功能,域名和IP地址的关系数据库,它承载了更多的流量负载的系统。用户访问站点的时候,站点后面的资源比较丰富,有本地基于网络流量的负载、服务器、CDN的资源等。基于DNS的全局流量调度系统变成一个流量枢纽和桥梁。一旦DNS瘫掉,后端的系统无论再怎么强壮都不再可用了。所以DNS对于业务系统的重要性是与日俱增的,已经变成一个核心的业务系统。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137880.html原文链接:https://javaforall.cn