论文部分内容阅读
随着数据库技术的发展和各种数据库产品的产生,数据库系统在各行各业和许多领域有了广泛的应用,随着应用需求的不断增加,越来越多的用户希望能够透明地访问和处理来自多个数据库的数据。同时,电子商务和信息技术的迅猛发展使数据库管理系统(DBMS)已经不堪重负,将这些数据库有机的连接起来,统一管理,协调工作不但提高数据库的性能和可用性,而且解决了遗留系统的问题。对于这些通过网络连接起来的数据库而言,必须能够实时处理大量的用户请求,而且必须能向客户提供高质量服务。但是如何才能提高由网络连接起来的异构数据库的响应速度、稳定性和扩展性,并且保护最初的硬件投资;如何避免大量用户请求对系统带来的冲击,负载均衡技术为我们提供了一条途径,它在后端数据库间分发客户请求,以达到减少系统瓶颈,增强系统响应能力。本文的负载均衡是基于中间件技术的,采用三层体系结构,位于中间件层的负载均衡器负责将客户的请求根据数据库负载情况和负载均衡策略转发给最适合处理的数据库中去。负载均衡器采用Java语言实现,在功能上完成了数据库负载信息的收集、负载的决策、负载的放置,支持不同数据库部署的负载均衡决策器,支持不同负载均衡算法模块的动态加入或撤出。本文首先介绍了数据库集群、数据库集群的负载均衡及其研究状况,其次介绍了本系统负载均衡的体系结构,研究了传统负载均衡的体系结构和组成,分析了集中式和分布式负载均衡策略的优缺点,提出采用应用服务器技术与反向代理技术的可扩展的集中式负载均衡体系结构,该体系结构的重点是根据用户的需要通过配置文件订制不同数据库部署和算法的决策模块。实现了负载均衡的扩展性和灵活性。同时还分析了数据分布对负载均衡的影响,提出了基于RAID技术的数据库部署。然后研究了负载均衡算法的信息策略,在面向对象技术将负载均衡组件化、对象化的前提下提出将数据库对象的等待队列数作为本系统的负载均衡指标。研究了动态与静态策略的特点,提出针对不同数据库部署采用不同算法的策略。并在集中式动态策略的基础上提出了基于等待的最小队列算法。最后对以上研究与设计进行了实现,并结合测试分析了负载均衡的能力。