论文部分内容阅读
近年来,Internet的发展步入黄金时期,网上信息交换的数量正在呈指数形式的增长。随着网络硬件设备的飞速进步,网络带宽的瓶颈效应日趋减弱,服务器的性能问题逐渐显现出来。单一的服务器系统处理客户请求的能力有限,利用服务器集群来处理快速增长的客户请求,提供可伸缩性服务,成为当前的热门话题。而服务器集群的负载平衡问题则是当前研究人员关注的重要问题。本文正是围绕这一重要问题展开了讨论。 首先从负载平衡的角度出发,讨论了服务器集群采用的各种负载调度方法,并以科学计算集群为模型分析了负载平衡的相关理论。特别是针对DNS负载平衡策略,详细分析了它的优缺点及改进方法,并在此基础上提出了一种新的DNS动态负载平衡技术。 DNS动态负载平衡技术采用了中心调度策略,分负载调度器和服务器池两层结构,DNS服务器与服务器池在同一个高速局域网内,由DNS服务器充当负载调度器。在该技术中,DNS服务器能够分别用三种方法定时检测服务器的存活状况,根据服务器的存活情况,动态的决定是否对该服务器进行域名解析。在负载调度算法上,在DNS原有的轮转负载调度方法的基础上,我们增加了另外三种负载调度算法,使DNS服务器能够根据服务器的硬件负载能力决定每个服务器的负载分配量。同时,本文提出一个动态反馈负载平衡算法,结合调度算法中的加权调度算法,根据动态反馈回来的负载信息来调整服务器的权值,从而有效地解决服务器间的负载不平衡。 结合DNS动态负载平衡技术,以远程教育为背景,本文设计实现了一个CSCW负载平衡集群系统模型。在该模型中,包含有WEB服务器、应用服务器和目录服务器,系统提供了一个虚拟教室的功能,客户能够自建虚拟教室。虚拟教室采用JAVA语言实现,应用了JAVA的APPLET技术;负载平衡采用了二层结构,一个是当客户访问WEB服务器时,采用DNS服务器作负载调度器,将负载均衡到各个WEB服务器上,二是当客户自建教室时,通过目录服务器作为负载调度器,把自建教室均衡地分配到各个应用服务器上。在第二层负载平衡结构中,目录服务器能够动态获得各应用服务器的负载情况,采用动态反馈负载平衡算法进行负载调度;同时目录服务器还能判断各应用服务器的存活状况以决定是否向服务器分配负载。 最后,我们利用JAVA语言设计实现了一个通用的通讯机制。