读透DNS负载均衡的排名算法

  前面我们介绍了DNS负载均衡的一些概念,那么现在针对这种负载均衡技术,我们再来讨论一下相关的算法问题,以及排名问题。这个是在服务器负载应用中很重要的一个概念。那么更多的知识,我们还是从下文中来了解吧,望大家能对这方面的问题有个总结。

  最初,负载均衡只是为了允许DNS代理可以支持机器簇的概念,在这里,这些机器的功能都是类似的或者相同的?而且,它并不需要特别关心选择了哪台机器?这样,负载就被平均地分配在一系列实际上并不相同的主机上?因为机器有着不同的配置和能力,这样,我们就需要更加复杂的算法?

  “循环算法A可以以一种循环方式在服务器中平均的分配请求?但是,尽管这些请求是被动态地处理,对于不同的性能特点的忽视使这种算法的一个问题?

  “负载平均算法A可以根据服务器的负载分配请求?这个设计非常简单而且也较为低廉?但是这种算法却不能应付服务器在配置和潜力方面有差异的情况?

  “排名算法A基于如下所示的用户的数目和负载平均的列表?这个算法是比较合理的,因为它根据最少的单个访问以及较低负载平均来进行排名最佳主机的?这个算法在dlbDNS中确定最佳服务器的时候被使用?

  UNIQ_USERS:登录的不重复用户的数目(比如说,用户a和用户b就是两个不重复的用户,而不管他们登录了多少次)

  以下是dlbDNS中的算法?如果一个服务器的请求是DNAME类型,那么,服务器就会进行如下的一些动作:

  2、通过和每个服务器建立一个同步的非连接性的连接获取每个参与的服务器的排名值?

  2、每一分钟都对主机的排名进行计算,而不是在得到请求的时候才进行计算?因为回应时非常重要的一个因素?

  4、处理错误情况,比如说dlbDNS在未等待主机回应的情况下关闭了UDP接口?

  这个就不需要多说了,除了可以充分地利用资源之外,因为我们通过DNS来实现负载均衡,这样FTP和TELNET之类的程序也可以使用dlbDNS?

  目前,在通过BIND的代码中,gethostbyname系统将不能正常工作,这个问题可以通过一个主机和IP地址的列表的配置文件来解决?当然,我们希望由一个更好的解决方法?

  第二,排名算法还不完善,算法还不能考虑处理器的数目,对CPU和内存的考虑会使得算法更加有效?

  第三,在Linux服务器上,排名算法使用的是/proc文件结构中的文件,这样只能说是动态平衡配置,应该还需要一个更加强大的设计?

您可能还会对下面的文章感兴趣: