DNS定义
DNS(Domain Name System,域名系统),因特网上作为
域名
和
IP地址
相互映射的一个
分布式数据库
。
目的是使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
通过主机名最终得到主机名对应IP的过程叫做
域名解析
。
DNS域名解析过程
-
在浏览器中输入一个URL(如www.baidu.com)并按下回车键,浏览器将发起DNS请求,其会先在
浏览器缓存
中查找域名所对应的ip地址,有的话,直接跳过DNS解析了,若是没有,就会查找
硬盘的hosts文件
,看看有没有,有的话,直接找到hosts文件里面的ip -
如果本地的hosts文件没有能得到对应的ip地址,浏览器会向
本地DNS服务器
发出一个DNS请求,本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动等。 -
查询你输入的网址的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。
如果没有
,本地DNS服务器
直接向DNS根服务器
进行查询。 -
DNS根域名服务器接到请求后如果其无法解析将
返回对应的顶级域名服务器IP
,然后本地域名服务器向这个顶级域名服务器询问,该顶级域名服务器如果无法解析将返回对应
权威域名服务器
的IP。 -
本地域名服务器会向对应权威域名服务器发送亲求,然后权威域名服务器若查到将
返回对应服务器IP
,若未查到将返回域名错误信息。 -
为了提高DNS域名查询效率,域名服务器都广泛使用了
高速缓存
,故本地域名服务器将会记录这个查询的域名对应的IP.
DNS负载均衡策略
DNS负载均衡是一种分布式计算的技术,它通过域名解析服务来
将客户端请求分发到多个服务器中
,从而实
现网络流量的平衡分配
。
具体来说,DNS负载均衡一般采用
多个IP地址映射到同一个域名
的方式,各个IP地址对应着不同的服务器,当客户端向该域名发出请求时,DNS服务器会返回其中一个IP地址,客户端根据这个IP地址向相应的服务器发送请求。
在DNS负载均衡中,常常采用的有以下几种方式:
-
轮询法
:DNS服务器依次返回每个服务器的IP地址,轮流分配流量。这种方式简单易行,但是
无法应对高并发
情况下的流量波动。 -
加权轮询法
:对服务器设置不同的权重值,权重值越高的服务器分配到的流量就越多。这种方式能够平衡流量分配,但是
需要手工设置权重值
。 -
最少连接数法
:DNS服务器会记录每个服务器当前连接数,并返回连接数最少的服务器IP地址,这样可以尽可能地避免某些服务器过载。这种方式
适用于存在长连接
的应用场景,但是
需要实时监控服务器连接数
。
总之,DNS负载均衡是通过
分散流量到多个服务器
上,实现更好的网站性能和可用性。