【前五篇】系列文章传送门:html
为何在地址栏输入域名,就能直接访问到对应服务器?全局负载均衡和内部负载均衡又是什么?这些都和 DNS 解析息息相关,让咱们一块儿来解密 DNS 解析。数据库
其实提及 DNS 解析,应该都知道它很像地址簿。就像咱们去一家新开的沃尔玛超市,经过地址簿查出来沃尔玛在哪条路多少号,而后再去找。编程
在网络世界中,也是这样的。咱们能够记住网站的名称,可是很难记住网站的 IP 地址,所以须要一个“地址簿”,帮咱们将网站名称转换成 IP。这个“地址簿”就是 DNS 服务器。缓存
对于 DNS 服务器而言,全球每一个人上网,都须要访问它。 而全球的网民数,据最新统计,已经有 40 亿,每一个人都访问它,可想而知 DNS 服务器会有很大的访问流量压力(高并发)。 并且,它还很是重要,一旦出了故障,整个互联网都将瘫痪(高可用)。 此外,上网的人分布在全世界各地,若是你们都去同一个地方的某一台服务器,时延将会很是的(分布式)。服务器
所以,DNS 服务器必定要具有高可用、高并发、分布式的特色。网络
基于此,DNS 服务器设计成树状的层次结构。以下图:并发
上面说了 DNS 服务器面临大流量访问的压力,所以,为了提升 DNS 的解析性能,不少网站都会就近部署 DNS 缓存服务器。因此,咱们常见的 DNS 解析流程就变成了:负载均衡
至此,咱们完成了 DNS 的解析过程,整个过程以下图:分布式
站在客户端角度,上述过程是一次 DNS 递归查询过程。由于本地 DNS 全权为它代劳,它只要坐等结果就行了。在这个过程当中,DNS 除了能够经过名称映射为 IP 地址外,它还能够作另一件很重要的事 - 负载均衡。高并发
仍是拿咱们逛沃尔玛超市为例。它可能在一个城市里会有多家店,咱们要逛沃尔玛,能够就近找一家,而不用都去同一家,这就是负载均衡。
DNS 作负载均衡也有花样能够玩。 1)DNS 作内部负载均衡 所谓的内部负载均衡,其实很好理解。就像咱们的应用访问数据库,在应用里配置的数据库地址。若是配置成 IP 地址,一旦数据库换到了另一台机器,咱们就要修改配置。若是咱们有不少台应用同时连一个数据库,一换 IP,就须要将这些应用的配置所有修改一遍,是否是很麻烦?因此,咱们能够将数据地址配置成域名。在更换数据库位置时,只要在 DNS 服务器里,将域名映射为新的 IP 地址就能够了。
在这个基础上,咱们能够更进一步 。例如,某个应用要访问另一个应用,若是配置另一个应用的 IP 地址,那么这个访问就是一对一的。可是当被访问的应用因流量过大撑不住的时候,咱们就须要部署多个应用。这时候,咱们就不能直接配置成 IP,而是要配置域名了。只要在域名解析的时候,配置好策略,此次返回一个 IP,下次返回第二个 IP,就实现了负载均衡。
2)DNS 作全局负载均衡 为了保证咱们应用的高可用性,每每会将应用部署在多个机房,每一个地方都会有本身的 IP 地址。当用户访问某个域名的时候,这个 IP 地址能够轮询访问多个数据中心。若是一个数据中心由于某种缘由挂了,只要将这个 IP 地址从 DNS 服务器中删掉就能够了,用户不会访问到宕机的服务器,保证了应用的可用性。
另外,咱们确定但愿用户能访问就近的数据中心。这样客户访问速度就会快不少,体验也会好不少,也就实现了全局负载均衡的概念。
咱们经过 NDS 访问数据中心对象存储上的静态资源为例,来看一看整个过程。
假设全国有多个数据中心,托管在多个运营商,每一个数据中心有三个可用区。对象存储能够经过跨可用区部署,实现高可用性。在每一个数据中心中,都至少部署两个内部负载均衡器,内部负载均衡器后面对接多个对象存储的前置服务器(Proxy-server)。那么,请求过程以下图:
对于不须要作全局负载均衡的简单应用来说,yourcompany.com 的权威 DNS 服务器能够直接将 object.yourcompa.com 这个域名解析为一个或者多个 IP 地址,而后客户端能够经过多个 IP 地址,进行简单的轮询,实现简单的负载均衡。
可是对于复制的应用,尤为是跨地域跨运营商的大型应用,就须要更加复杂的全局负载均衡机制,于是须要专门的设备或者服务器来作这件事情,这就是全局负载均衡器(GSLB,Global Server Load Balance)。
在 yourcompany.com 的 DNS 服务器中,通常是经过配置 CNAME 的方式,给 object.yourcompany.com 起一个别名。例如 object.vip.yourcompany.com,而后告诉本地 DNS 服务器,让它请求 GSLB 解析这个域名,GSLB 就能够在解析这个域名的过程当中,经过本身的策略实现负载均衡。
上图中画了两层的 GSLB,是由于分运营商和地域。咱们但愿不一样运营商的客户,能够访问对应运营商机房中的资源,这样不跨运营商访问,有利于提升吞吐量,减小时延。两层 GSLB 的过程以下:
参考:
原文出处:https://www.cnblogs.com/BeiGuo-FengGuang/p/10176702.html