精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>网络书籍>>《FreeBSD使用大全》>>FreeBSD连载(92):基于DNS的负载均衡

主题:FreeBSD连载(92):基于DNS的负载均衡
发信人: Hopper()
整理人: hahalee(2000-02-28 20:04:31), 站内信件
http://www.sina.com.cn 2000年2月2日 01:04 王波

负载均衡技术
  可以使用上面提到的各种技术来提升Apache服务器的性能,同时也可以使用
增加硬件性能的方法来提高Web 服务器的性能。但是单台服务器的性能总是有限
的,尤其是服务器上需要运行大量的CGI程序时,不可能仅靠上面的调整服务器设
置的方法来建立一个面向整个Internet,如同Yahoo等站点一样的高负载Web站点


  为了建立一个高负载的Web站点,必须使用多服务器的分布式结构。上面提到
的使用代理服务器和Web服务器相结合,或者两个Web服务器相互协作的方式也属
于多服务器的结构,但在这些多服务器的结构中,每个服务器所起到的作用是不
同的,属于非对称的体系结构。非对称的服务器结构中每个服务器起到的作用是
不同的,例如一个服务器用于提供静态网页,而另一个用于提供动态网页等等,
这样就使得网页设计时就需要考虑不同服务器之间的关系,一旦要改变服务器之
间的关系,就会使得某些网页出现连接错误,不利于维护,可扩展性也差。

  另外一种多服务器的设计结构为对称结构,在对称结构中每台服务器都具备
等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后,可以通
过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收
到连接请求的服务器都独立回应客户的请求。在这种结构中,将外部请求均匀分
配到服务器上的技术称为负载均衡技术,由于建立内容完全一致的Web服务器并不
困难,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。


基于DNS的负载均衡

  最早的负载均衡技术是通过DNS服务中的随机名字解析来实现的。在DNS服务
器中,可以为多个不同的地址配置同一个名字,这个数据被发送给其他名字服务
器,而最终查询这个名字的客户机将在解析这个名字时随机使用其中一个地址。
因此,对于同一个名字,不同的客户机会得到不同的地址,因此不同的客户访问
的也就是不同地址的Web服务器,从而达到负载均衡的目的。



  例如如果希望使用三个Web服务器来回应对www.exampleorg.org.cn的HTTP请
求,就可以设置该域的DNS服务器中关于该域的数据包括与下面例子类似的结果:


www1 IN A  192.168.1.1
www2 IN A  192.168.1.2
www3 IN A  192.168.1.3
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3
 
 

  这里先为每个计算机定义一个真实名字,然后再为它们定义同一个别名。直
接针对不同地址设置同一个真实名字(A记录)也是可行的,但使用别名的方法易
于管理一些。

  由于此时反向解析只能针对一台计算机,那么每个Web服务器都需要使用Ser
verName重新定义同一个名字,或者设置名字解析的顺序为hosts文件优先,并在
hosts文件中定义本身为www,以保证每个服务器的名字设置保持一致。

  此后外部的客户机就可能随机的得到对应www的不同地址,那么随后的HTTP请
求也就会发送给不同地址了。

  当使用DNS负载均衡的时候,必须尽量保证不同的客户计算机能均匀获得不同
的地址。由于DNS数据是具备一个刷新时间的标志的,一旦超过这个时间限制过期
,其他DNS服务器就需要和这个服务器交谈以重新获得地址数据,就有可能获得不
同IP地址。因此为了使得地址能随机分配,就应该使得刷新时间尽量短,不同地
方的DNS服务器能更新对应的地址,使得地址获得能随机一些。然而将过期时间设
置的过低将使得DNS流量大增,而造成额外的网络问题。出于折衷的考虑,一般将
刷新时间设置为1个小时。

  DNS负载均衡的一个问题是一旦某个服务器出现故障,即使及时修改了DNS设
置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间保存了故障服
务器地址的客户计算机将不能正常访问服务器。

  尽管存在多种问题,然而它还是一种非常有效的做法,当前使用在包括Yaho
o在内的很多Web站点上。

未完,待续。。。  



--
小多子:你知道我们佟家百年不衰的道理么?
        那就是,不要一条路走到黑!

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.190.123]

[关闭][返回]