论文部分内容阅读
互联网近年来飞速发展,日益完善的网络服务使得人们越来越频繁地通过网络处理生活中的事务,互联网的发展已经成为社会发展的重要驱动力。但是随着互联网用户以及访问量的剧增,服务器的工作能力受到了极大的考验,在一些业务复杂的Web网站中尤为突出,如何提高Web集群在高并发场景下的工作能力是需要解决的主要问题。目前解决上述问题的主要方案是增加服务器数量,通过构建应用服务器的负载均衡集群来分担服务器负载。在负载均衡的过程中,起到决定性作用的就是负载均衡算法。本文分析了负载均衡的研究现状,对动态负载均衡算法相关研究进行了总结和分析。本文结合实验室农产品质量安全追溯系统中Web集群负载均衡的需求,对多种负载均衡技术方案进行了比较研究,基于Nginx设计了改进的负载均衡算法。本文完成的主要工作如下:(1)在对Nginx架构模型、模块体系以及底层数据结构进行研究的基础上,分析了Nginx在upstream模块实现负载均衡的转发流程及负载均衡算法原理。针对Nginx加权轮询算法的不足之处研究了改进方案,分析和选取了对改进负载均衡算法可用的负载信息。(2)针对Nginx加权轮询算法没有动态考虑服务器性能情况的问题,设计了一种采用LA策略的动态加权轮询算法。算法根据后端服务器的状态周期性地调整服务器权值,并用负载方差设定负载调整的判断条件;在周期内采用基于学习自动机的策略,使用响应变化趋势优化权值,改善周期内负载不均衡情况。(3)针对负载信息集中管理导致性能消耗过大的问题以及本文实验项目的多业务环境,设计了基于请求的层次结构动态负载均衡策略。系统采用层次结构管理负载信息,子域之间采用基于熵的负载调节,子域之中针对请求资源需求的特殊性,结合服务器状态对请求分类进行负载均衡,在业务复杂的系统环境下提升了集群性能。(4)在项目平台上,对本文设计的采用LA策略的动态加权轮询算法、基于请求的层次结构动态负载均衡策略分别进行了实验和分析。实验结果表明,本文设计的算法与策略在性能上有较好的表现。