论文部分内容阅读
当今社会,无论是政府机构、金融行业或是工业生产,都与快速发展的互联网紧密相关,特别是人们的日常生活方式和生活水平,更因互联网的到来,发生了巨大的改变。但随着越来越多的人使用互联网,爆炸式的并发Web访问请求给互联网带来了严峻的挑战,单一Web服务器很难准确及时、迅速响应高并发量的访问请求,促使人们探索新技术,以此来解决该问题。解决此问题最常用的技术是构建集群系统。集群系统下的服务器共同工作,以此来满足人们期望服务器可以快速响应准确返回访问请求。而集群系统中最核心问题就是负载均衡,负载均衡最主要目的就是合理地把大量并发请求分发给集群中的服务器,从而提升整个系统的吞吐量、资源利用率以及降低请求响应时间。所以负载均衡算法的好坏,对集群系统的性能提升起决定性作用。本论文对Web服务器Nginx内置负载均衡算法进行分析和研究,提出一种动态负载均衡算法,并利用该算法实现了一个基于Nginx和Tomcat的服务集群系统。在此集群系统中,利用Httperf和Autobench软件对Nginx内置的加权轮询算法、IP Hash算法,第三方提供的fair算法、一致性Hash算法以及本论文所提出的动态算法进行性能测试。实验结果表明,本论文所提出的动态算法能够更好地实现负载均衡,且具有如下几个特点:(1)选择最优服务器:通过负载均衡器收集的负载信息,把服务器剩余负载与性能之比作为权值,并选择权值排名前三的服务器,随机选择其中一台服务器来处理用户的请求。服务器被选中的概率与权值比重成正比。这可以避免一直把请求分配给权值最大的服务器,因为收集信息存在一定延迟,所以有时权值最大的服务器处理用户请求的能力不一定最好。(2)组群管理:对集群系统中服务器进行分组,每组中选定一个作为中央节点,用于收集组中服务器的负载信息,最后中央节点把收集的负载信息再反馈给负载均衡器。因此,负载均衡器无需与所有服务器通信,减少了负载均衡器的开销。(3)预防“假死”机制:当服务器处理能力达到极限时,对于新的用户请求,处理时间会剧增。为了避免这样情况发生,本论文记录服务器的处理请求时间,用于判断其是否已经处于“假死”状态,而防止再将新的请求分配给该服务器。