DNS轮询

大多域名注册商都支持多条A记录的解析,其实这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的IP上,这样就完成了简单的负载均衡。

优点

  • 基本上无成本,因为往往域名注册商的这种解析都是免费的;
  • 部署方便,除了网络拓扑的简单扩增,新增的Web服务器只要增加一个公网IP即可。

缺点

  • 健康检查,如果某台服务器宕机,DNS服务器是无法知晓的,仍旧会将访问分配到此服务器。修改DNS记录全部生效起码要3-4小时,甚至更久;
  • 分配不均,如果几台Web服务器之间的配置不同,能够承受的压力也就不同,但是DNS解析分配的访问却是均匀分配的。其实DNS也是有分配算法的,可以根据当前连接较少的分配、可以设置Rate权重分配等等,只是目前绝大多数的DNS服务器都不支持;
  • 会话保持,如果是需要身份验证的网站,在不修改软件构架的情况下,这点是比较致命的,因为DNS解析无法将验证用户的访问持久分配到同一服务器。虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过期,而重新查询服务器并指向新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能要求被重新认证身份,来回切换时间长了各台服务器都保存有用户不同的信息,对服务器资源也是一种浪费。

部署方法

这个是万网的域名控制面板,将同一域名解析到2条A记录上。

 这个是免费的智能DNS解析服务,www.dnspod.com   ,不仅可以多条A记录,而且还能使用中国特色,根据电信、网通、教育网的用户访问,解析到不同的IP上。

实验

先将www.alcoholwang.cn   的A记录解析到61.172.244.75和61.172.244.91上,然后使用nslookup工具查看。

 

    总结
    之前看到文章中讨论,关于DNS服务器的压力问题,其实并不用太过担心,因为解析记录通常都是有一小时的缓存的,如果用户最近一级的DNS服务器上的解析记录还未过期的话,是不用查询主服务器的,通常DNS都有一小时的缓存,所以这样就等于把压力分摊到了各用户最近一级的DNS服务器上了。

时间: 2024-08-03 15:25:37

DNS轮询的相关文章

Nginx反向代理+DNS轮询+IIS7.5 千万PV 百万IP 双线 网站架构案例_nginx

Nginx  ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor 将源代码以类BSD许可证的形式发布. Nginx 的中文维基:http://wiki.codemongers.com/NginxChs 在高并发连接的情况下,Nginx是Apache服务器不错的替代品.Nginx

《DNS与BIND(第5版)》——10.7 轮询调度(Round-Robin)负载分配

10.7 轮询调度(Round-Robin)负载分配 自BIND 4.9发布之后,名称服务器已经正式支持一些过去必须通过补丁才能实现的负载分配功能.Bryan Beecher曾给BIND 写过一个补丁,以实现他所谓的"轮转地址记录(shuffle address records)".这是一组特殊类型的地址记录,名称服务器会在响应查询时轮转其中的地址.例如,域名foo.bar.baz有3个"可轮转"IP地址:192.168.1.1,192.168.1.2和192.16

url-web项目中长轮询本地窗口中的数据URL怎么写?

问题描述 web项目中长轮询本地窗口中的数据URL怎么写? 50C 如题目:web项目中用长轮询 当前桌面上开的 c/s窗口中扫入数据 web项目长轮询得到值 解决方案 不考虑低版本ie可以用websocket,和c/s的socket响应差不多,自己找你使用的语言的websocket服务器 如果你用的C#,可以看这个:C# websocket聊天室示例 解决方案二: 既然长轮询,那么得到数据后,直接把数据发送给web端 解决方案三: 长轮询的URL怎么写取决于你的服务器端程序的设计.它如何处理q

击鼓传花——轮询式错误处理机制的设计与实现

错误|错误处理|设计 击鼓传花--轮询式错误处理机制的设计与实现(一) -------------------------------------------------------------------------------- 摘要 本文简单介绍了一种轮询式错误处理机制的设计思想与具体实现,本机制可以灵活地实现对错误处理方式的扩充,以及对错误信息格式的自定义. -----------------------------------------------------------------

击鼓传花——轮询式错误处理机制的设计与实现(三)

错误|错误处理|设计 ErrHdlEventLogClass: 该类是将错误信息写入系统日志的具体实现类,该类继承自AbstractHandleClass.用户在自定义错误处理方式的时候,便可仿照该类来设计.具体代码如下: public class ErrHdlEventLogClass: AbstractHandleClass { public const int ID = 2; //错误处理方式的序号 public ErrHdlEventLogClass() { // // TODO: Ad

使用ExtJs开发MIS系统(4):轮询

众所周知,Http是无状态的,每次请求结束后,客户端都会和服务器端断开连接.请求总是从客户端发起的,除非客户端发起请求,否则服务器端没有办法主动地向客户端传递任何数据.然而对于MIS,常常需要从服务器端推送数据给客户端,例如当用户提交了一个新的申请后,需要管理员去审批.解决办法就是客户端"锲而不舍"的询问服务器,是否有新的事情要做,也就是所谓轮询技术. 轮询的过程可以用下面这个图来描述: 开发MIS系统(4):轮询-"> 我们仍然以用户登录为例,先来看轮询的过程: 每一

cacti监控(5)快速轮询

Cacti默认轮询器cmd.php执行效率有点低,spine为C语言编写的组件,性能要好许多.安装spine要和Cacti的版本相匹配,本文以最新版cacti0.8.8a安装为例. 这里我们是将默认的五分钟轮询设置为一分钟轮询 安装cacti-spine wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz [root@test3 ~]# cp /mnt/hgfs/LINUX/cacti\ nagios\ mrtg

.NET:轮询访问ThreadPool

问:我目前正在使用 Microsoft .NET Framework ThreadPool,在使用过程中我遇到了一种情况,不知道该如何解决.我需要处理一个较大批次的已在队列中的工作项,在第一个批次开始处理后第二个批次(规模稍小)到达.最初,较大批次中的一些工作将被分配给 ThreadPool 中的所有工作线程.但是,当第二批到达后,我想平均分配,使每一批都得到同样的服务,而不是先到的批次得到所有线程. 当其中一批完成时,我希望无论哪一个仍需处理的批次,都能够获得所有工作线程的关注.我该如何在 T

Web 通信 之 长连接、长轮询(long polling)

基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息.这里的"不停"其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已. 二.长连接.长轮询的应用场景 长连接.长轮询一般应用与WebIM.ChatRoom和一些需要及时交互的网站应用中.其真