转载请说明出处:http://blog.csdn.net/cywosp/article/details/38017027

    在上一篇文章(http://blog.csdn.net/cywosp/article/details/38014581)中讲到了使用HTTP重定向来实现server的负载均衡,本文则解说还有一种实现server集群的负载均衡方案——DNS域名解析。
    DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,可以使人更方便的訪问互联网。人们在通过浏览器訪问站点时仅仅须要记住站点的域名就可以,而不须要记住那些不太easy理解的IP地址。在DNS系统中有一个比較重要的的资源类型叫做主机记录也称为A记录,A记录是用于名称解析的重要记录,它将特定的主机名映射到相应主机的IP地址上。假设你有一个自己的域名,那么要想别人能訪问到你的站点,你须要到特定的DNS解析服务商的server上填写A记录,过一段时间后,别人就能通过你的域名訪问你的站点了。DNS除了能解析域名之外还具有负载均衡的功能,以下是利用DNS工作原理处理负载均衡的工作原理图:
                
    由上图能够看出,在DNSserver中应该配置了多个A记录,如:
      www.apusapp.com IN A 114.100.20.201;
      www.apusapp.com IN A 114.100.20.202;
      www.apusapp.com IN A 114.100.20.203;
因此,每次域名解析请求都会依据相应的负载均衡算法计算出一个不同的IP地址并返回,这样A记录中配置多个server就能够构成一个集群,并能够实现负载均衡。上图中,用户请求www.apusapp.com,DNS依据A记录和负载均衡算法计算得到一个IP地址114.100.20.203,并返回给浏览器,浏览器依据该IP地址,訪问真实的物理server114.100.20.203。全部这些操作对用户来说都是透明的,用户可能仅仅知道www.apusapp.com这个域名。

    DNS域名解析负载均衡有例如以下长处:
1. 将负载均衡的工作交给DNS,省去了站点管理维护负载均衡server的麻烦。
2. 技术实现比較灵活、方便,简单易行,成本低,使用于大多数TCP/IP应用。
3. 对于部署在server上的应用来说不须要进行不论什么的代码改动就可以实现不同机器上的应用訪问。
3. server能够位于互联网的任何位置。
4. 同一时候很多DNS还支持基于地理位置的域名解析,即会将域名解析成距离用户地理近期的一个server地址,这样就能够加速用户訪问,改善性能。

    同一时候,DNS域名解析也存在例如以下缺点:
1. 眼下的DNS是多级解析的,每一级DNS都可能缓存A记录,当某台server下线之后,即使改动了A记录,要使其生效也须要较长的时间,这段时间,DNS任然会将域名解析到已下线的server上,终于导致用户訪问失败。
2. 不可以按server的处理能力来分配负载。DNS负载均衡採用的是简单的轮询算法,不能区分server之间的差异,不能反映server当前执行状态,所以其的负载均衡效果并非太好。
3. 可能会造成额外的网络问题。为了使本DNSserver和其它DNSserver及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

    其实,大型站点总是部分使用DNS域名解析,利用域名解析作为第一级负载均衡手段,即域名解析得到的一组server并非实际提供服务的物理server,而是相同提供负载均衡server的内部server,这组内部负载均衡server再进行负载均衡,请请求发到真实的server上,终于完毕请求。



參考:
[1] http://zh.wikipedia.org/zh/%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F
[2] http://blog.csdn.net/flynetcn/article/details/3733574
[3] 《大型站点技术架构——核心原理与案例分析》

每天进步一点点——负载均衡之DNS域名解析的更多相关文章

  1. 负载均衡之DNS域名解析

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38017027 在上一篇文章(http://blog.csdn.net/cywosp/arti ...

  2. 架构师成长之路6.5 DNS服务器搭建(添加记录、负载均衡、DNS视图)

    点击返回架构师成长之路 架构师成长之路6.5 DNS服务器搭建(添加记录.负载均衡.DNS视图)  部署主DNS : 点击 部署从DNS : 点击 1.添加A记录.CNAME记录.MX记录.PTR记录 ...

  3. 负载均衡之DNS轮询

    大多数域名注册商都支持对统一主机添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡.下图的例子是:有3台联通服务器.3台电信服 ...

  4. DNS正、反向解析+负载均衡+智能DNS+密钥认证

    主机名 IP 软件包 系统版本 内核版本 实验环境 master 192.168.30.130 bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6 bind-chroot.x8 ...

  5. 【转】Nginx学习---负载均衡的原理、分类、实现架构,以及使用场景

    [原文]https://www.toutiao.com/i6593604356799463944/ [原文]https://www.toutiao.com/i6592741060194075143/ ...

  6. 高并发解决方案--负载均衡(HTTP,DNS,反向代理服务器)(解决大流量,高并发)

    高并发解决方案--负载均衡(HTTP,DNS,反向代理服务器)(解决大流量,高并发) 一.总结 1.什么是负载均衡:当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服 ...

  7. 常见的Web负载均衡方法

    用户手动选择 通过在主站首页入口提供不同线路,不同服务器链接的方式,来实现负载均衡.在一些提供下载业务的网站中比较常见,如:华军软件园. DNS轮询 大多域名注册商都支持对同一主机名添加多条A记录,这 ...

  8. LB 高可扩展性集群(负载均衡集群)

    一.什么是负载均衡 首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载, ...

  9. Web服务器Tomcat集群与负载均衡技术

    我们曾经介绍过三种Tomcat集群方式的优缺点分析.本文将介绍Tomcat集群与负载均衡技术具体实施过程. 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的 ...

随机推荐

  1. POJ3691DNA repair

    题解: 构建出trie图,令f[i][j]表示到第i个字符走到j号节点最少需要修改的字符数,然后枚举后继节点转移即可. 代码:没写caseWA了n发... #include<cstdio> ...

  2. LeetCode Pascal's Triangle II (杨辉三角)

    题意:给出杨辉三角的层数k,返回最后一层.k=0时就是只有一个数字1. 思路:滚动数组计算前一半出来,返回时再复制另一半.简单但是每一句都挺长的. 0ms的版本: class Solution { p ...

  3. MFC无边框窗体不响应任务栏点击问题

    为了提升用户体验,需要隐藏主窗体的边框,使用图片绘制新的标题栏.标题栏绘制之后,发现用户点击任务栏上应用程序的图标,应用程序不会随着点击交替隐藏显示. 分析结果是问题出现窗体风格设置上. 最初为了省事 ...

  4. 七牛上传Qt版本

    最近在找图床,写博客啥的需要.以前的图床好像挂了,搭在BAE上的图床也挂了,可能BAE3.0更新了吧. 花了点时间写了Qt版本 github地址:https://github.com/wzyuliya ...

  5. [GRYZ2015]足球联赛

    问题描述 巴蜀中学新一季的足球联赛开幕了.足球联赛有n 只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得3 分,输一场不得分,平局两只队伍各得一分.英勇无畏的小鸿是机房的主力前锋 ...

  6. 【原】Storm及特点

    Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...

  7. Cloudera Manager安装

    安装环境: 系统:CentOS 6.3 64位 虚拟机:VMWare

  8. javscript面试题(一)

    你如何理解HTML结构的语意化? 1.去掉或样式丢失的时候能让页面呈现清晰的结构:2.屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页:3.PDA.手机等设备可能无法像普通电脑的浏览器一 ...

  9. RxJava 复杂场景 Schedulers调度

    参考: https://blog.piasy.com/2016/10/14/Complex-RxJava-2-scheduler/ 以Zip为例,学习Schedulers的线程调度 要求: * cre ...

  10. sql-定义变量

    declare @subject nvarchar(50) set @subject=(select Subject from dbo.Scores where ID=1) --select @sub ...