DNS域名解析是利用DNS处理域名解析请求的同时进行负载均衡处理的一种方案。
如下图,
程序架构探讨—004 应用服务器集群的伸缩性之DNS域名解析负载均衡_第1张图片

在DNS服务器中配置了多个记录:
www.buzhidao.com IN A 192.100.80.1、
www.buzhidao.com IN A 192.100.80.2、
www.buzhidao.com IN A 192.100.80.3。
每次请求,域名解析请求都会根据负载均衡算法计算出一个不同IP地址返回,这样A记录中配置的多个服务器就构成一个集群,并实现负载均衡。以上图为例,用户请求域名www.buzhidao.com,DNS根据A记录和负载均衡算法得到一个IP地址:192.100.80.3,返回给浏览器;浏览器根据该IP地址,访问真实物理服务器192.100.80.3.
DNS域名解析负载均衡的优点是将负载均衡的工作交给了DNS服务器,省掉了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域
名解析,也就是会将域名解析成距离用户地址位置最近的一个服务器地址,可以加快用户访问速度,提高性能。但是DNS域名解析负载均衡也有缺点,目前DNS是多级解析,每一级DNS都可能缓存A记录,当需要下线一台服务器后,即时修改了DNS的A记录,要使其生效也需要较长时间,这段时间DNS依然会将域名解析到已经下线的服务器,导致用户访问失败;而DNS负载均衡的控制一般都在域名服务商处,网站无法对其做更多改善和管理。
实际上,大型网站总是部分使用DNS域名解析,利用域名解析作为第一级负载均衡手段,即域名解析得到的一组服务器并不是实际提供服务的物理服务器
,而是同样提供负载均衡的内部服务器,这组内部服务器,再进行负载均衡,将请求分发到实际的提供服务器的服务器上。