如何使用dns轮询工作的原理实现负载军俄航

出处: 大多数域名注册商都支持对统一主机添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡。下图的例子是:有3台联通服务器、3台电信服务器,要实现“联通用户流量分摊到3台联通服务器、其他用户流量分摊到电信服务器”这个效果的设置。
DNS由于成本较低,所以一般在小型的网站用的比较多。但是大型的网站一般也会将用它和其他负载均衡的方式结合起来一起使用,DNS轮询方式提供的IP地址,在大型网站中往往是一个集群的地址,可能是均衡交换机也可能是均衡服务器。对于小网站的话,挂接多台服务器也没有问题。如:
DNS轮询的优点:
零成本:只是在DNS服务器上绑定几个A记录,域名注册商一般都免费提供解析服务;
部署简单:就是在网络拓扑进行设备扩增,然后在DNS服务器上添加记录。
DNS轮询的缺点:
1、可靠性低
假设一个域名DNS轮询多台服务器,如果其中的一台服务器发生故障,那么所有的访问该服务器的请求将不会有所回应,这是任何人都不愿意看到的。即使从DNS中去掉该服务器的IP,但在Internet上,各地区电信、网通等宽带接入商将众多的DNS存放在缓存中,以节省访问时间,DNS记录全部生效需要几个小时,甚至更久。所以,尽管DNS轮询在一定程度上解决了负载均衡问题,但是却存在可靠性不高的缺点。
2、负载分配不均匀
DNS负载均衡采用的是简单的轮询算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。
DNS服务器是按照一定的层次结构组织的,本地DNS服务器会缓存已解析的域名到IP地址的映射,这会导致使用该DNS服务器的用户在一段时间内访问的是同一台Web服务器,导致Web服务器间的负载不均匀。此外,用户本地计算机也会缓存已解析的域名到IP地址的映射。当多个用户计算机都缓存了某个域名到IP地址的映射时,而这些用户又继续访问该域名下的网页,这时也会导致不同Web服务器间的负载分配不均匀。
负载不均匀可能导致的后果有:某几台服务器负荷很低,而另几台服务器负载很高、处理缓慢;配置高的服务器分配到的请求少,而配置低的服务器分配到的请求多。
Related posts:
相关 [负载 dns] 推荐:
大多数域名注册商都支持对统一主机添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡. 下图的例子是:有3台联通服务器、3台电信服务器,要实现“联通用户流量分摊到3台联通服务器、其他用户流量分摊到电信服务器”这个效果的设置. DNS由于成本较低,所以一般在小型的网站用的比较多.
- 互联网 - ITeye博客
1.通过CNAME方式实现负载均衡.  CNAME记录是描述一个域名或主机名的别名,域名服务器获得CNAME记录后,就会用记录中的别名来替换查找的域名或主机名.后面会查询这个别名的A记录来获得相应的IP地址,如:.  先将GSLB的主机名定义为所查询域名的权威DNS服务器的别名,然后将GSLB主机名添加多条A记录,分别对应多个服务器的IP地址.
- SegmentFault 最新的文章
当网站的访问量大了就会考虑负载均衡,这也是每一个架构师的基本功了,其基本地位就相当于相声里的说学逗唱,活好不好就看这个了 :). 传统的负载均衡思路是单点的,不管你是硬件的还是软件的基本都是这样的原理. 对于一般的需求来说,这样的架构基本就可以解决问题了. 就如同上图所示,传统思路也存在非常明显的局限性.
- 互联网 - ITeye博客
下载软件 百度找出来了 居然被解析到了本地. cr173 被指向到了 127.0.0.1. 找遍了hosts 和路由器 最后才发现是万恶的联通. 阿里dns 速度和质量都不错. 百度dns 评测说较慢 备胎. 114DNS安全版 (114.114.114.119, 114.114.115.119).
- 无名小卒
Public DNS Tool v9.1下载:
官方. 无名小卒(Digital Fingerprint: b98c67913fef421ab42f) Related Posts. Webluker-免费CDN、DNS解析和网站监控服务.
- IT技术博客大学习
经常说DNS劫持,也常常说域名解析不正确. 在阅读《HTTP权威指南》缓存一章时,提到缓存文档过期采用“生存时间技术”与DNS类似. 所以抽空学习了解了一下DNS的解析过程,以及DNS TTL值的概念. 根域名服务器(root-servers.org)是互联网域名解析系统(DNS)中最高级别的域名服务器,全球仅有13台根服务器.
- 月光微博客
  新网的DNS服务今天出现长时间故障,包括新网自身在内的大量域名都无法解析,导致网站无法打开,例如使用新网服务的jiathis等网站域名都无法解析.   做为一个域名服务商,DNS发生如此长时间的故障,并且导致客户的域名无法解析,实在太不应该了.   建议新网的客户对新网进行集体诉讼,或者干脆把域名转走算了.
- 操作系统 - ITeye博客
DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务. &1& 客户机提交域名解析请求,并将该请求发送给本地的域名服务器. &2& 当本地的域名服务器收到请求后,就先查询本地的缓存. 如果有查询的DNS信息记录,则直接返回查询的结果.
- 望月的博客
费劲九牛二虎之力,终于将在
万网注册的这个域名转移到godaddy,然而舒心的日子没有几天,麻烦又来了,由于日益严重的
DNS污染,域名常常出现解析错误,真是屋漏偏逢连夜雨,不过,blogging还得继续,所以还是得想办法,在这里将想法和办法分享,仅供参考. 某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.
- 免費資源網路社群
為什麼要檢查網站的 DNS 呢. 因為正確的 DNS 設定能讓網站運作更正常,DNS Health 協助找出錯誤的設定值,以及確認網域名稱有正確的設定. 網站名稱:
Pingdom DNS Health. 網站鏈結:
/. 進入 Pingdom DNS Health 測試工具後,輸入要檢測的網域名稱,例如 &
freegroup.org& ,然後按下 Test Now 開始檢測.
坚持分享优质有趣的原创文章,并保留作者信息和版权声明,任何问题请联系:@。&DNS轮询方式实现负载均衡(3)
秒后自动跳转到登录页
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
DNS轮询方式实现负载均衡(3)
上传时间:
技术分类:
资源评价:
(0位用户参与评价)
已被下载&16&次
DNS的安装与配置;DNS轮询方式实现负载均衡;DNS主辅结构配置
本资料共包含以下附件:
DNS轮询方式实现负载均衡(3).doc
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
相关专题推荐
《Linux 运维趋势》是由 51CTO 系统频
Windows Server 2003系列沿用了2000的
域(Domain)是Windows网络中独立运行的
马哥教育是从事Linux运维、系统、架构
本视频详细介绍了linux主机管理,从l
本专题为Windows Server 2008 R2从入
《鸟哥的Linux私房菜》是最具知名度的
本专题为YesLab讲师赵小明讲解的Linu
本专题是一套很系统很全面的高端集群
本套教程为华中红客基地DOS命令讲解系
本系列视频为郑州拓远教育咨询有限公
本专题为尚观发布的shell脚本编程视频
课程旨在对生产环境的工作任务进行详
韦东山老师的《嵌入式Linux应用开发完
本专题为Linux高级进阶教程,内容涉及
本套Linux视频教程,于3月1日开始陆续
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理你的位置: >
> 推荐-NFS共享MySQL使用DNS轮询实现Web负载均衡
NFS共享MySQL使用DNS轮询实现Web负载均衡
今天学习了NFS,遂结合前面学习的LAMP+Bind做一个实验,实现两台Web服务器采用同一个MySQL数据库和相同的网页文件,对LAMP和Bind不了解的可以去查看我以前写的博客:&
实验拓扑图
192.168.2.5
192.168.2.2
192.168.2.3
192.168.2.4
本文所有主机皆关闭SElinux和IPtables
以下操作在中执行
[root@storage ~]Loaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfile * base:
* updates: Package 1:nfs-utils-1.2.3-64.el6.x86_64 already installed and latest versionNothing to do
创建文件夹并导出
[root@storage ~][root@storage ~][root@storage var][root@storage webroot][root@storage webroot]wordpress &wordpress-4.4.1-zh_CN.zip[root@storage webroot][root@storage ~] & &/var/mydata & 192.168.2.2(rw,no_root_squash) & &/var/webroot &192.168.2.3(rw,no_root_squash) 192.168.2.4(rw,no_root_squash)[root@storage ~]Starting NFS services: & & & & & & & & & & & & & & & & & & [ &OK &]Starting NFS quotas: & & & & & & & & & & & & & & & & & & & [ &OK &]Starting NFS mountd: & & & & & & & & & & & & & & & & & & & [ &OK &]Starting NFS daemon: & & & & & & & & & & & & & & & & & & & [ &OK &]Starting RPC idmapd: & & & & & & & & & & & & & & & & & & & [ &OK &][root@storage ~]Export list for localhost:/var/webroot 192.168.2.4,192.168.2.3/var/mydata &192.168.2.2
搭建dns,MySQL环境
以下操作在中执行
[root@localhost ~] &perl-DBD-MySQL.x86_64 0:4.013-3.el6 & & & & & & & & & & & & & & & & & & & & &
&perl-DBI.x86_64 0:1.609-4.el6 & & & & & & & & & & & & & & & & & & & & & & & &
&perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1 & & & & & & & & & & & & & & &
&perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1 & & & & & & & & & & & & & & & & & & &perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1 & & & & & & & & & & & & & & & & & &
&perl-libs.x86_64 4:5.10.1-141.el6_7.1 & & & & & & & & & & & & & & & & & & & &
&perl-version.x86_64 3:0.77-141.el6_7.1 & & & & & & & & & & & & & & & & & & & & &portreserve.x86_64 0:0.0.4-9.el6 & & & & & & & & & & & & & & & & & & & & & & &Complete![root@localhost ~]
在/etc/named.rfc1912.zones文件中添加以下几行
zone && IN { & & & &type & & & &file &.zone&;};
配置区域解析库文件为如下
vim /var/.zone$TTL 600$ORIGIN .@ & IN SOA & & ( & & & & & & & &1D & & & &5M & & & &7D & & & &1D) & & & &IN & NS &nsns & & &IN & A & 192.168.2.2www & & IN & A & 192.168.2.3www & & IN & A & 192.168.2.4storage IN & A & 192.168.2.5
测试效果如下,以达到DNS实现轮询
这里MySQL数据库文件通过NFS保存在远程主机
[root@localhost ~][root@localhost ~]
[root@localhost ~][root@localhost src]debug &kernels &mariadb-5.5.32-linux-x86_64.tar.gz[root@localhost src][root@localhost src][root@localhost mariadb-5.5.32-linux-x86_64]bin &COPYING &COPYING.LESSER &data &docs &include &INSTALL-BINARY &lib &man &mysql-test &README &scripts &share &sql-bench &support-files[root@localhost mariadb-5.5.32-linux-x86_64]groupadd: group 'mysql' already exists[root@localhost mariadb-5.5.32-linux-x86_64]useradd: user 'mysql' already exists[root@localhost mariadb-5.5.32-linux-x86_64]Installing MariaDB/MySQL system tables in '/mydata' ...OKFilling help tables...OK[root@localhost mariadb-5.5.32-linux-x86_64]aria_log. &aria_log_control &mysql &performance_schema &test[root@localhost src]`/usr/local/mysql' -& `/usr/src/mariadb-5.5.32-linux-x86_64'[root@localhost mysql][root@localhost mysql][root@localhost mysql]datadir = /mydataskip_name_resolve = oninnodb_file_per_table = on[root@localhost mysql][root@localhost mysql]Starting MySQL... SUCCESS! [root@localhost mysql]Welcome to the MariaDB monitor. &C or \g.Your MariaDB connection id is 1Server version: 5.5.32-MariaDB-log MariaDB ServerCopyright (c) 2000, 2013, Oracle, Monty Program Ab and others.Type '' or '\h' for help. Type '\c' to clear the current input statement.mysql& GRANT ALL ON wp.* TO 'wpuser'@'%' IDENTIFIED &BY 'passwd';Query OK, 0 rows affected (0.04 sec)mysql& CREATE DATABASEQuery OK, 1 row affected (0.02 sec)mysql& FLUSH PRIVILEGES;Query OK, 0 rows affected (0.01 sec)
第一台主机安装
以下操作在(192.168.2.3)中执行
[root@localhost ~] &apr-util.x86_64 0:1.3.9-3.el6_0.1 & & & & & & & & & & & & & & & & & & & & & &
&apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 & & & & & & & & & & & & & & & & & & & & &httpd-tools.x86_64 0:2.2.15-45.el6.centos & & & & & & & & & & & & & & & & & &
&libedit.x86_64 0:2.11-4.cvs.1.el6 & & & & & & & & & & & & & & & & & &
&mailcap.noarch 0:2.1.31-2.el6 & & & & & & & & & & & & & & & & & & & & & & & &
&php-cli.x86_64 0:5.3.3-40.el6_6 & & & & & & & & & & & & & & & & & & & & & & &
&php-common.x86_64 0:5.3.3-40.el6_6 & & & & & & & & & & & & & & & & & & & & & & &php-pdo.x86_64 0:5.3.3-40.el6_6 & & & & & & & & & & & & & & & & & & & & & & & Complete![root@localhost ~]NameVirtualHost 192.168.2.3:80NameVirtualHost 192.168.2.3:80&VirtualHost 192.168.2.3:80& & ServerName
& DocumentRoot /webroot/wordpress&/VirtualHost&[root@localhost ~]Starting rpcbind: & & & & & & & & & & & & & & & & & & & & &[ &OK &][root@localhost ~][root@localhost ~][root@localhost ~][root@localhost ~]wordpress &wordpress-4.4.1-zh_CN.zip[root@localhost ~]Starting httpd: httpd: apr_sockaddr_info_get() failed for httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName[Wed Mar 23 18:05:15 2016] [warn] NameVirtualHost 192.168.2.3:80 has no VirtualHosts & & & & & & & & & & & & & & & & & & & & & & & & & & & & & [ &OK &]
安装前我们需要先将dns服务器中对192.168.2.4的解析注释,避免安装时出现解析问题
安装过程不做演示
第二台主机安装
以下操作在(192.168.2.4)中执行&我们要将dns服务器中的A记录恢复到初始轮询的状态
[root@localhost ~]Installed: &httpd.x86_64 0:2.2.15-45.el6.centos & & & & & & & nfs-utils.x86_64 1:1.2.3-64.el6 & & & & & & & php.x86_64 0:5.3.3-40.el6_6 & & & & & & & php-mysql.x86_64 0:5.3.3-40.el6_6 & & & & & & &Dependency Installed: &apr.x86_64 0:1.3.9-5.el6_2 & & & & & & & &apr-util.x86_64 0:1.3.9-3.el6_0.1 & & & & & & & &apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 & & & &httpd-tools.x86_64 0:2.2.15-45.el6.centos & & &
&keyutils.x86_64 0:1.4-5.el6 & & & & & & & libedit.x86_64 0:2.11-4.cvs.1.el6 & & & &libevent.x86_64 0:1.4.13-4.el6 & & & & & & & &libgssglue.x86_64 0:0.1-11.el6 & & & & & & & & & &libtirpc.x86_64 0:0.2.1-10.el6 & & & & & &mailcap.noarch 0:2.1.31-2.el6 & & & & & & & & & &nfs-utils-lib.x86_64 0:1.1.5-11.el6 & & & & & php-cli.x86_64 0:5.3.3-40.el6_6 & & & & & & & &
&php-common.x86_64 0:5.3.3-40.el6_6 & & & &php-pdo.x86_64 0:5.3.3-40.el6_6 & & & & & & & & &python-argparse.noarch 0:1.2.1-2.1.el6 & & & &rpcbind.x86_64 0:0.2.0-11.el6 & & & & & & & & & Complete!
[root@localhost ~]NameVirtualHost 192.168.2.4:80&VirtualHost 192.168.2.4:80& & ServerName
& DocumentRoot /webroot/wordpress&/VirtualHost&[root@localhost ~]Starting rpcbind: & & & & & & & & & & & & & & & & & & & & &[ &OK &][root@localhost ~][root@localhost ~][root@localhost ~]Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using
for ServerName & & & & & & & & & & & & & & & & & & & & & & & & & & & & & [ &OK &][root@localhost ~]#
确保DNS服务能提供以下效果&
由于在Windows我们不好进行模拟, 遂修改HOSTS文件达到测试效果
现在访问web1主机
发布一篇文章测试
现在访问web2主机
还能够看到刚才发的文章
再发布一篇文章
回到web1测试
再次访问web1主机
虽然页面一样, 但是主机已经是web2了
虽然本文最后测试时只修改了hosts文件进行测试,但是如果指定DNS地址为192.168.2.2的话是能够完成负载均衡的效果的,但是NFS的网络传输文件的效率并不好,后期会学习LVS和Nginx, HAproxy等专用负载均衡软件再给大家写一篇。&作者: AnyISalIn&感谢: MagEdu
转载请注明: &
与本文相关的文章Others(5)
今天在看CDN的时候突然想到了一个问题,如果DNS的解析结果包含多条A记录,系统如何处理?
三张图可以说明很多问题
第一次域名解析
第二次域名解析
第三次域名解析
可见DNS服务器会对A记录结果轮询返回,虽然实现了简单的负载均衡,但是智能化程度比较低
无法针对特定策略进行负载均衡,虽然是东部用户,返回西部服务地址也是有可能的,这也是CDN发展越来越好的必然原因吧
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1717081次
积分:12228
积分:12228
排名:第1163名
原创:206篇
转载:16篇
评论:226条
(2)(3)(1)(2)(1)(2)(1)(2)(1)(2)(1)(1)(2)(3)(2)(2)(2)(5)(2)(2)(4)(7)(3)(18)(7)(7)(10)(8)(10)(6)(5)(4)(4)(4)(6)(7)(9)(14)(10)(4)(2)(2)(4)(13)(4)(4)(9)

我要回帖

更多关于 dns轮询工作的原理 的文章

 

随机推荐