




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 曲阜师范大学博士硕士学位论文原创性说明 ( 在口划“4 ) 本人郑重声明:此处所提交的博士口硕士日论文数据库集群负载 均衡技术的研究,是本人在导师指导下,在曲阜师范大学攻读博士口硕 士母学位期间独立进行研究工作所取得的成果。论文中除注明部分外不包含 他人已经发表或撰写的研究成果。对本文的研究工作做出重要贡献的个人和 集体,均己在文中已明确的方式注明。本声明的法律结果将完全由本人承担。 作者签名:旅锑 日期:z o l o 6 2 曲阜师范大学博士硕士学位论文使用授权书 ( 在口划“ ) 数据库集群负载均衡技术的研究系本人在曲阜师范大学攻读博士口 硕士昭岸位期间,在导师指导下完成的博士口 硕士留学位论文。本论文的 研究成果归曲阜师范大学所有,本论文的研究内容不得以其他单位的名义发 表。本人完全了解曲阜师范大学关于保存、使用学位论文的规定,同意学校 保留并向有关部门送交论文的复印件和电子版本,允许论文被查阅和借阅。 本人授权曲阜师范大学,可以采用影印或其他复制手段保存论文,可以公开 发表论文的全部或部分内容。 丢一 日期:乙df 0 占z 日期:幽o ,3 是 锋移 很,谚 名名 签签 者师作导 - 数据库集群负载均衡技术的研究 摘要 随着i n t e m e t 的迅速发展和广泛应用、电子商务和信息技术的迅速发展,数据库在不 同的行业和领域得到了广泛的应用。海量的信息和大量的用户请求对数据库管理系统提出 了严峻的挑战。数据库集群为解决传统数据库管理系统所遇见的问题提供了解决方案。然 而,要使数据库集群能够及时高效的向用户提供高质量服务,就必须解决在低投入的f i 提 下如何根据节点的性能和现有的负载来分配任务,做到任务的分配合理、负载的分配均衡, 使集群节点能充分的协调工作的问题以及提高集群的可靠性和可扩展性的问题。负载均衡 技术可以帮助我们解决此类问题。通过负载均衡技术,数据库集群可以根据后端节点的负 载信息来分配新的客户请求,同时也可以在各节点之间调整负载,缩短系统的响应时间, 提高系统的工作效率。 本文首先介绍了数据库集群的研究背景和意义、数据库集群系统的基本理论及关键技 术。接着设计了一种为实现负载均衡算法的中间件结构模型,分析了模型中各个模块的功 能和实现各个模块的关键技术。然后在详细分析了影响负载均衡的因素的基础上提出了一 种动态的负载均衡算法。该算法能有效的实现负载信息的收集、评估,能有效的均衡节点 负载,起到提高系统效率的功能。 本文所做的具体工作如下: 1 、在研究数据库集群和中间件的基础上,设计了一种数据库中间件的结构模型,分 析了该模型的组成和功能。该结构模型通过两级事务管理器将用户请求划分为小的事务请 求分配给节点执行,增强了节点之间的协作。 2 、结合数据库应用请求、数据分布的特点和节点的异构性,设计了一种基于复制和 基于视图的一维数据划分的数据分布策略,该数据分布策略可以在数据分布方式转换时有 效的避免大量的数据转移。同时,在此基础上设计了一种动态负载均衡算法,该算法结合 上述的数据分布策略能在保持读操作的高效率的前提下有效的提高对数据库的写操作的 效率。 3 、最后通过实验对这种负载均衡算法进行了测验,实验结果表明基本上实现了预期 的设计目标。 关键字:数据库集群;负载均衡;中间件;数据分布 数据库集群负载均衡技术的研究 a b s t r a c t w i t ht h e r a p i dd e v e l o p m e n t o fe - c o m m e r c ea n di n f o r m a t i o nt e c h n o l o g ya n d 、析d e a p p l i c a t i o no fi n t e m e t ,d a t a b a s ei sw i d e l ya p p l i e di nd i f f e r e n ti n d u s t r i e sa n df i e l d s af l o o do f i n f o r m a t i o na n dal a r g eo fu s e rr e q u e s t sp l a c eas e r v e rc h a l l e n g eo nd a t a b a s em a n a g e m e n t s y s t e m t h ed a t a b a s ec l u s t e rp r o v i d e sas o l u t i o n t os o l v es u c hp r o b l e me n c o u n t e r e db y t r a d i t i o n a ld a t a b a s em a n a g e m e n ts y s t e m h o w e v e r , i no r d e rt om a k ed a t a b a s et i m e l ya n d e f f i c i e n t l yp r o v i d eu s e r sh i g h - q u a l i t ys e r v i c e s ,u n d e rt h ep r e m i s eo fl o w - i n p u t ,t h eq u e s t i o nt h a t h o wt oa l l o c a t et a s k st om a k es u r et h ed i s t r i b u t i o no ft a s k sa n dl o a d si sr e a s o n a b l ea c c o r d i n gt o p e r f o r m a n c eo f n o d e sa n dt h ee x i t i n gl o a da n dt h eq u e s t i o nt h a th o wt oi m p r o v et h er e l i a b i l i t yo f t h ec l u s t e ra n ds c a l a b i l i t yo ft h ec l u s t e rm u s tb es o l v e d l o a d - b a l a n c i n gt e c h n o l o g yc a l lh e l pu s t os o l v et h i sp r o b l e m t h r o u g ht h el o a d - b a l a n c i n gt e c h n o l o g y , w ec a l la l l o c a t en e wr e q u e s t s a c c o r d i n gt ot h el o a di n f o r m a t i o no fb a c k e n dn o d e ,a tt h es a m et i m e ,w ec a na l s oa d j u s tt h e o p e r a t i n gr e q u e s t so f u s e rt oi m p r o v et h es y s t e mr e s p o n s ea n dm e e tc u s t o m e r sr e q u e s t t h i sp a p e rf i r s t l yi n t r o d u c e st h er e s e a r c hb a c k g r o u n da n ds i g n i f i c a n c eo ft h ed a t a b a s e c l u s t e ra n db a s i ct h e o r ya n dk e yt e c h n o l o g i e so ft h ed a t a b a s ec l u s t e rs y s t e m a n dt h e nd e s i g n sa m i d d l e w a r es t r u c t u r et h a tc a nh e l pt or e a l i z el o a d - b a l a n c i n ga l g o r i t h m ,a n a l y s e st h ef u n c t i o no f e a c hm o d u l eo ft h em i d d l e w a r es t r u c t u r ea n di n t r o d u c e st h ek e yt e c h n o l o g i e st oa c h i e v ee a c h m o d u l e o nt h eb a s i so fd e t a i l e da n a l y z i n gt h ef a c t o r st h a ta f f e c tl o a d - b a l a n c i n g ,ad y n a m i cl o a d b a l a n c i n ga l g o r i t h mi sp u tf o r w a r d t h ea l g o r i t h mc a ne f f e c t i v e l ya c h i e v e t h ec o l l e c t i o no fl o a d i n f o r m a t i o n ,e v a l u a t i o na n dp l a c e m e n t ;a l s oc a ne f f e c t i v e l yb a l a n c et h el o a do f s e r v e rn o d et o i m p r o v et h ee f f i c i e n c yo f t h es y s t e m t h es p e c i f i cw o r kd o n ei sa sf o l l o w s : 1 o nt h eb a s i so fs t u d y i n gd a t a b a s ec l u s t e ra n dm i d d l e w a r e ,w ed e s i g naa r c h i t e c t u r et h a t c a l lh e l pu st or u nl o a d - b a l a n c i n ga l g o r i t h m , a n da n a l y z et h ec o m p o s i t i o na n df u n c t i o no ft h e a r c h i t e c t u r e t h es t r u c t u r ed i v i d e su s e r sr e q u e s t si n t os m a l l e rr e q u e s t st h a ta r ea s s i g n e dt ot h e n o d e sb yt w ot r a n s a c t i o nm a n a g e ra n de n h a n c et h ec o l l a b o r a t i o nd u r i n gn o d e st h r o u g ht h e r e a s o n a b l ed i v i s i o nt ot h eu s e r sr e q u e s t 2 b ya n a l y z i n g t h ea p p l i c a t i o nr e q u e s to fd a t a b a s ea n dt h ec h a r a c t e r i s t i c so fd a t a d i s t r i b u t i o na n dh e t e r o g e n e i t yo fn o d e s ,w ed e s i g nad a t ad i s t r i b u t i o nt h a tb a s eo nr e p l i c a t i o na n d o n e d i m e n s i o n a lv i e wd a t ap a r t i t i o n w h e nt h ed a t ad i s t r i b u t i o ni sc o n v e r t e d ,i tc a na v o i d t r a n s f e r r i n gl a r g ea m o u n t so fd a t a a tt h e s a l n et i m e ,w ed e s i g nad y n a m i cl o a d - b a l a n c i n g a l g o r i t h mo nt h i sb a s i s ,w h i c hc a ni m p r o v et h ew r i t eo p e r a t i o n so f d a t a b a s em o r e e f f i c i e n tu n d e r t h ep r e m i s eo fm a i n t a i n i n gt h eh i g he f f i c i e n c yo fr e a do p e r a t i o n 数据库集群负载均衡技术的研究 3 f i n a l l y ,w ep u tt h i sl o a d b a l a n c i n ga l g o r i t h mt oe x p e r i m e n t t h er e s u l t sp r o v et h a tt h i s a l g o r i t h mr e a l i z e st h ee x p e c t e dg o a l s -k e y w o r d s :d a t a b a s ec l u s t e r ;l o a db a l a n c i n g ;m i d d l e w a r e ;d a t a -一 一 d i s t r i b u t i o n 数据库集群负载均衡技术的研究 目录 第一章引言1 1 1 研究背景和意义1 1 2 研究现状。l 1 3 研究的主要内容和目标2 1 4 组织结构。2 第二章数据库集群概述4 2 1 集群介绍4 2 1 1 集群的特征4 2 1 2 集群的核心技术4 2 1 3 集群的分类。5 2 2 数据库集群系统5 2 2 1 数据库集群系统概论5 2 2 2 数据库集群的体系结构5 第三章集群中间件的结构和关键技术7 3 1 中间件7 3 1 1 中间件的定义7 3 1 2 中间件的特点与作用7 3 1 3 中间件的分类8 3 2 数据库中间件的结构模型设计一8 3 3 数据库中间件的通信方案设计1 0 3 3 1s o c k e t 通信机制lo 3 3 2 服务器和中心节点的通信过程1 1 3 3 3 实现流套接字所使用的函数1 2 第四章集群的数据分布策略1 4 4 1 数据库中数据分布1 4 4 2 两种数据分布的转换1 5 4 3 数据的同步16 4 4 数据分前i 转换的特点17 第五章数据库集群负载均衡策略1 8 5 1 影响因素和测量方法1 8 5 2 负载均衡策略18 5 2 1 节点状态评估1 9 l v 一 数据库集群负载均衡技术的研究 5 2 2 负载均衡算法2 0 5 2 3 负载均衡模块的设计2 1 第六章算法l b 的实现和分析2 4 6 1 算法的软硬件平台。2 4 6 1 1 硬件平台2 4 6 1 2 软件平台。2 4 6 2 算法的实现2 5 6 2 1 中心节点的程序设计一2 5 6 2 2 后端节点的程序设计2 7 6 3 算法的性能测试与分析2 7 6 3 1 测试实验环境图。2 7 6 3 2 算法测试实验2 7 第七章总结与展望o 3 0 【参考文献】3 1 在校期间发表的学术论文3 4 至| 谢3 5 v 数据库集群负载均衡技术的研究 1 1 研究背景和意义 第一章引言 众所周知,数据库技术从2 0 世纪6 0 年代诞生至今,经过4 0 年的发展,已经成为计 算机应用领域的主要技术之一。就数据库的研究和发展而言,各学科与数据库技术的交叉 渗透,产生了许多新型数据库技术。随着网络技术、电子商务的飞快发展,数据库的应用 范围也越来越大,越来越多的数据库系统被应用到i n t e m e t i n t r a n e t 上,已成为信息存储、 信息处理、信息共享的主要工具,成为企业信息化不可缺少的一部分。 随着信息量和访问量的不断增加,传统的数据库系统面临着如何存储大规模数据和如 何为高并发访问提供高效率的应答等问题。传统的单机数据库技术已不能很好的解决这些 问题。基于并行技术的数据库集群随着数据库技术、网络技术和计算机技术的发展应运而 生,很好的满足了当前应用的需求。 数据库集群【l j 是一组相互独立的数据库服务器通过高速互联网络互联组成的一种并行 或分布式系统。它可以使用廉价的资源来帮助我们实现提高系统的性能的目的,达到使用 高性能服务器所提供的服务的标准。要实现这一目标,就必须能及时处理大规模的用户请 求,能为用户提供一个可靠、高效的服务,这就要求系统能够充分的使用系统的资源,合 理的进行任务的分配,来避免系统负载的失衡。在集群中使用的负载均衡技术【2 j ,能将客 户的请求分发到合理的数据库服务器上,有效的均衡系统的负载,避免负载不均延缓响应 时间。因此,高效的负载均衡技术对提高数据库集群的性能是不可或缺的。 1 2 研究现状 随着数据库技术和集群技术的发展,数据库集群技术取得了很大的进步。特别是最近 几年,数据库集群技术发展迅速,例如n a r a y a n a n 介绍的g r i d d b 集群中间件能在网络环 境中支持数据子集的抽取和数据的传输操作。而由z t hz u r i c h 研究机构开发的p o w e rd b 能为用户提供统一的视图,能在保持原子性和可串行化的前提下把复杂的请求转化成多个 小事务请求,同时能协调集群完成这些事务。同国外技术相比,国内的数据库集群技术还 有一定的差距,对于数据库集群的研究还比较少。 数据库机群要想充分的体现其性能,对负载均衡的考虑是必不可少的。目前的负载均 衡方式包括软件和硬件两种方式。其中软件的实现方式中又包括静态负载均衡技术和动态 负载均衡技术。静态负载均衡实现起来简单,但不能根据系统的真实负载来分配任务,容 易产生负载的失衡。动态负载均衡技术实现起来比较复杂,能弥补静态负载均衡技术的不 足,但是需要增加一些通信的丌销。 目f i ;f x 寸数据库负载均衡的研究已成为热点。h a r i r i t 】给出了一种基于代理的中间件来帮 数据库集群负载均衡技术的研究 助异构数据库达到负载平衡的目的。文献【1 3 1 从数据的局部性和依赖性考虑设计了适合不同 应用的负载均衡结构,该结构能有效的适应同构或异构的集群。 1 3 研究的主要内容和目标 将数据库技术与集群技术相结合来实现高性能并行数据库系统,这里面仍然有许多需 要去解决的重大难题。本文的主要内容是探讨数据库集群的负载均衡的关键技术。在数据 库集群中,负载均衡与数据分布、系统的结构、负载的类型,节点的类型有着不可分割的 关系。设计良好的中间件和合理的数据分布策略有利于系统的负载均衡的实现。同时在设 计负载均衡算法时,节点的类型也是一个必须考虑的因素。对于同构节点组成的集群,负 载均衡算法的设计相对简单。而对于异构的集群,考虑到节点的异构性、负载类型的多样 性,算法设计相对比较复杂。本文研究的主要目的在于通过对数据库集群负载的研究,设 计出一种基于中间件的动态负载均衡算法,旨在能有效的提高数据库集群的性能,特别是 对修改数据库请求的响应。 本文的研究目标: ( 1 ) 通过对数据库集群和中间件技术的研究,设计一种为适应动态负载均衡算法的 中间件结构,详细分析各个模块的功能和实现各个模块的关键技术。 ( 2 ) 通过对数据分布的研究,设计一种基于复制和基于视图的一维数据划分策略, 该策略能在转移少量的数据的前提下有效的进行数据分布方式的转换。 ( 3 ) 通过对异构集群负载的分析,提出一种基于集群性能平均值的负载测量方法, 屏蔽节点的异构对测量负载的影响,实现在同一的标准上来衡量节点的负载。 ( 4 ) 通过对数据库集群负载的研究,设计基于中间件的动态负载均衡算法,该算法 能有效的提高对数据库集群修改请求的响应。 ( 5 ) 研究算法设计平台,对负载均衡算法进行实验和分析。 1 4 组织结构 本文共分为七章,按照下列方式组织: 第一章引言 介绍数据库集群研究背景和意义、研究现状、研究目标以及本文的组织结构。 第二章数据库集群概述 介绍了集群系统的特征、分类、主要技术以及数据库集群的定义和体系结构。 第三章集群中间件的结构和关键技术 本节先介绍了中间件的特点、作用和分类,然后在对数据库集群和中问件的研究分析 的基础上,设计了一种中间件结构模型,分析了各个模块的功能和作用,最后重点对集群 中i h j f q :的通信方案作了详细的介绍。 数据库集群负载均衡技术的研究 第四章集群的数据分布策略 本章结合数据库集群的负载特点和数据分布的特点,提出了一种基于复制和基于视图 一维数据划分策略。分析和论述了两种数据存储的方式以及两种方式的转换方法。 第五章数据库集群负载均衡策略 本章首先分析了影响负载的因素,然后提出了负载的评估方法,设计了负载平衡模块, 最后结合数据分布策略和中间件结构模型,提出了一种动态负载均衡算法( l b ) 。 第六章算法l b 的实现和分析 本章研究分析负载均衡算法的实现平台,给出了算法实现的对象包,最后给出了算法 的实验测试和结果分析。 第七章总结与展望 总结本文所做的工作以及分析工作中存在的不足和下一步研究的工作。 3 数据库集群负载均衡技术的研究 2 1 集群介绍 第二章数据库集群概述 集群是一组相互独立的服务器通过高速网络互联组成的一种并行或分布式的系统。数 据库集群系统是以集群技术和数据库技术为基础,有一组相互独立的数据库节点,并且这 些节点通过高速网络互联,彼此协同计算,作为一个整体来对外提供服务。集群对外表现 为单一的系统,集群中的所有节点对外都拥有一个统一的名字。集群中的节点拥有自己的 c p u 、内存和输入输出设备以及提供服务所需的各种软件。节点之间相互配合来完成各种 任务,为用户提供透明的高可靠性的服务。集群设计的出发点是提高可扩充性、抗灾难性 和提高可靠性。 2 1 1 集群的特征 一个设计成熟的集群系统应该具备一下特征: 高可靠性:系统能提供7 * 2 4 小时无间断服务,在服务节点出现故障时, 迅速将任务转移到另一台服务器,同时系统能在较短时间内恢复正常。 高扩展性:集群系统能够随着任务量的要求能够动态的扩展系统规模, 加服务节点也可以减少服务节点。 系统能够 即可以增 高性能:集群系统作为一个整体,能发挥其整体优势,提供较高的系统吞吐量, 对外提供高效优质服务。 易用性:集群应能方便用户操作和使用,拥有良好的统一操作界面,使用户和系 统管理员都能方便的对集群系统进行操作和使用。 2 1 2 集群的核心技术 一个正常运转的集群系统需要用到各种各样的技术,提供不同服务的集群使用的技术 也有很大的区别,在此我们分析集群中必不可少的核心技术。 负载均衡技术:负载均衡技术可以使任务均匀的分配到集群节点中,避免节点的 负载分配不均,以此来提高集群的吞吐量。 高可靠性技术:在集群节点出现故障时,能迅速的将任务转移到另一服务节点来 继续对外提供服务,同时集群节点能在较短时问内恢复正常,保证集群能提供持续不问断 的对外服务。 可扩展性技术:集群能够方便的动态的添加和减少服务节点,来增强集群的性能。 单一系统映像( s s i ) :用户不必知道系统中的那个节点为其服务,也不应该知道系 统内资源的分配、利用等具体细节。用户通过单一的系统接口和统一的系统视图来操作系 统的资源。 4 数据库集群负载均衡技术的研究 2 1 3 集群的分类 现实中的集群有多种特征,影响这种特征的因素也有多种,目前根据不同的划分标准 可将集群分为如下几种,如表2 1 所示。 表2 1 集群类型表 划分标准名称 节点类型和异构集群系统 资源类型同构集群系统 高可靠行集群系统 应用策略 高可扩展集群系统 并行计算集群系统 应用目的w e b 服务器集群系统 数据库服务器集群系统 2 2 数据库集群系统 2 2 1 数据库集群系统概论 数据库集群是在数据库技术和集群技术相结合的基础上产生的,有一组相对独立的通 过高速网络互联、彼此协作计算、作为一个统一的数据库系统为用户提供服务的节点,同 时这些节点有独立的c p u 、内存和硬盘等硬件资源,拥有独立的操作系统和数据库管理系 统等软件资源。数据库集群的目标是实现高可靠性、高可扩展行和高可用性。数据库集群 通过节点的协作和平行处理来突破单机系统的性能瓶颈来减少延迟提高数据库系统的性 能。数据库集群与分布式数据库、并行数据库虽然有很多相似之处,但数据库集群与它们 之间也存在较大的差别。 数据库集群与分布式数据库的差别【4 】主要表现在分布式数据库中所有的数据库被看成 是一个整体,有全局数据库管理系统进行管理,它的主要目的是实现数据的透明共享,没 有要求利用节点来提高系统的性能。数据库集群除了要提供统一的镜像外,还要求利用节 点的协助来提高系统的性能。 数据库集群与并行数据库系统f 5 6 j 的差别主要表现在并行数据库系统中各节点不具有 自治性,系统是一个单一的数据库系统,而数据库集群中的节点具有自治性,而且节点与 节点之间还可能具有异构性。 2 2 2 数据库集群的体系结构 目日,j - 数据库集群的体系结构按照节点是否共享存储设备可以分为:基于数掘引擎的集 数据库集群负载均衡技术的研究 群体系结构和基于数据库中间件的集群体系结构。 基于数据引擎的集群又称为共享存储的集群,共享存储包括共享主存和共享磁盘两 种。由于共享主存的集群实现困难且复杂,对硬件的要求较高,所以此类集群大部分是基 于磁盘共享的。该种体系结构的集群拥有比基于中间件的集群优越的性能和可靠性,但对 节点的要求较高,要求节点有集群功能。典型代表o r a c l e r a c 。该结构如图2 1 所示: 囹国囹 图2 1 基于数据引擎的集群体系结构 基于数据库中间件的集群体系结构又叫无共享集群体系结构7 2 0 1 ,在该结构中,对节 点没有集群功能的要求,每个节点都拥有自己的内存和磁盘,各个数据库引擎对各自数据 库进行管理,通过中间件来实现对自治的数据库站点进行协调同步和并行处理的管理,对 外提供统一的系统映像。该种结构的集群能实现所有的集群功能,代价比数据引擎的集群 要小的多,实现也较容易,该结构如图2 2 所示: i l客户请求 上 中l 间件 数据库引擎 一 数据 _ 卜一 图2 2 基丁数据库网关( 中间件) 的集群体系结构 6 肇回肇国肇围译国唪国唪回 一 数据库集群负载均衡技术的研究 第三章集群中间件的结构和关键技术 基于中间件的数据库集群支持集群节点的自治,各数据库节点在中间件的作用下相互 协助和并行处理事务。每一个节点都有自己的磁盘和内存存储系统,可以根据数据模型和 应用的要求,将数据分配到各节点上,同时也可以根据应用需要在站点之间转移数据。 3 1 中间件 、 3 1 1 中间件的定义 中间件8 1 是一种独立的系统软件或服务程序,是连接两个独立应用程序或独立系统的 软件。分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机朋艮务 器的操作系统之上,管理计算机资源和网络通讯。通过中间件,应用程序可以工作于多应 用软件平台或多o s 环境,也可以在具有不同的接口的相连接的系统之间相互交换信息。 中间件模型如图3 1 : 3 1 2 中间件的特点与作用 图3 1 中间件模型 中间件是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件是处于操作 系统软件与用户的应用软件中间,处于在操作系统、数据库软件和网络之上,应用软件的 下层的一种软件,主要是为复杂的应用程序抽象出通用的公共部分,以降低应用开发的复 杂程度,为处于上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地丌发和集 成复杂的应用软件。中l 日j 件通过定义程序接口,为应用软件的开发提供了一个相对稳定的 高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中问件升级更新, 并保证中间件对外部的接口不变,则应用软件几乎不需任何修改仍可继续使用,因此,中 问件应具有以下特点: 满足大量应用的需要。 7 数据库集群负载均衡技术的研究 运行于多种硬件和o s 平台。 支持分布式计算,提供跨网络、硬件和o s 平台的透明性的应用或服务的交 互功能。 支持标准的协议、标准的接口。 从整个软件产业来说,中间件搭建了应用与技术之间的桥梁,成为软件产业链条上不 可或缺的一环,其作用巨大。中间件为客户提供了性价比更好的应用方案、为开发商提供 了高效率及高可用性的开发平台、并且可以适应不同的操作系统和不同数据库产品的需 要。中间件,把软件产业相关厂商以及客户紧密的结合在一起,形成一个良性的生态系统。 3 1 3 中间件的分类 中间件是一类基于分布式的处理软件【9 】,最突出的特点是其网络通信功能。中间件不 仅要实现与应用软件的互连,还要实现应用之间的互操作。它包括类型: 数据库访问中间件【l o 】:用于连接客户端与后台数据库。在早期,该类数据库中间 件有数据库厂商直接提供。随着数据库产品的增多,目前其正在逐渐被为解决不同品牌数 据库之间格式差异而开发的多数据库访问中间件取代。 消息中间件:通过将不同应用软件的通信格式转换成同一格式,应用于不同应用 软件之间的通信。 应用服务器中间件:其作用是保持客户端与后台服务器数据的一致,主要应用于 互联网环境。 安全中间件:为网络安全而开发的一种软件产品。 3 2 数据库中间件的结构模型设计 数据库中间件是在操作系统和数据库软件之上,用户软件之下的一层软件。良好的中 间件结构能够有助于均衡系统的负载,防止负载失衡,提高系统的运行效率。中间件s e q u o i a 虽能有效的提高数据库读操作的效率,而写效率却十分低效 1 2 a 5 】。本文针对此种情况,设 计了基于两级事务管理器的中间件模型,旨在拥有高效读操作的同时,能有效的提高写操 作的效率。结构如图3 2 : 数据库集群负载均衡技术的研究 监听和会话线索( o d b c j d b c ) 上t 元字典 h 主事务管理器 i 数据分布模 上 式转换器叫从事务管理器 l j l 全局日志卜j 一一。li l - i 事务恢复管理器 r i 上 ,r 数据库访问接口 南意。= 1 图3 2 结构图 ( 1 ) 监听和会话线索通过j d b c 或o d b c 监听客户请求,建立与客户的会话连接。通 过该层将用户的请求提交给中间层,同时该层也提供将服务结果返还给用户的功能。 ( 2 ) 主事务管理器主要包括语法分析模块、事务划分模块和事务结果的整合和反馈模 块。语法分析模块主要进行的语法和词法分析。事务划分模块根据查询谓词和全局字典对 通过语法分析得到的语法树进行事务的划分和优化,将大事务划分成一个个可以在节点数 据库上执行的小事务。事务结果的整合和反馈模块主要是接受从事务管理器返回的子事务 执行结果,将属于一个大事务的子事务结果进行整合操作,将所得的结果返还给用户。此 外,主事务管理器还有控制全局事务的可串行化执行来保证事务可并行执行的功能。 ( 3 ) 从事务管理器主要是将子事务的预提交写入日志文件,并发调度子事务。同时, 它还含有负载均衡模块,并且可根据负载均衡模块的反馈信息来决定是否调动数据分布模 式转换器以及通知撤销部分事务和调整节点数据的分布。 ( 4 ) 数据分行模式转换器通过接收从事务管理器发来的转换分布方式的命令,来调整 数据在节点数据库的分布方式,同时修改元字典来记录数掘的分伽。 ( 5 ) 数据库访问接口将事务管理器传递下来的子事务提交给节点执行,同时将执行结 果返回给事务管理器。 ( 6 ) 事务恢复管理! 器负责事务的在异常情况下的恢复操作。 9 数据库集群负载均衡技术的研究 3 3 数据库中间件的通信方案设计 中心管理节点与服务节点要频繁的交换负载信息来调整集群节点的负载量来提高集 群的性能,因此良好的通信机制是集群实现高性能必不可少的条件。该算法使用网络套接 字a p i 来实现通信。应用编程接口a p i 实现简单,使用方便,具有较高的稳定性,被许多 操作系统采用,例如w i n d o w s ,l i n u x 和各类u n i x ,现已成为开发因特网通信软件的事实标 准。目前t c p i p 网络通信中最为通用的网络接口是s o c k e t 接口,该接口包含了许多的函 数和例程,开发人员可以直接利用它们来开发程序。 3 3 1s o c k e t 通信机制 网络通信要实现的是网络中两台或多台主机上的进程的通信,借助通信链路和通信软 件的支持,通过数据的传递来实现。s o c k e t 是建立在t c p i p 协议上通信接口,在使用s o c k e t 进行网络通信编程时,通信两端都拥有一个s o c k e t ,s o c k e t 通过主机号和端口号来标识一 个通信进程,在通信过程中,s o c k e t 通信可以使用面向连接的通信方式也可以使面向无连 接通信方式。通常情况下,s o c k e t 使用的套接字可分为: 面向连接的套接字:又称为流式套接字,可提供面向连接,可靠的服务,可保证 数据无差错,并且使接收方能按发送顺序无重复的接受数据。 面向无连接的套接字:又称为数据报式套接字,数据以包的形式发送,可能会出 现数据的重复、丢失和乱序,它提供的是一个不可靠、无连接的服务。 原始套接字:可对i p i c m p 等底层协议访问,可用于对新协议的实现的检验或者 实现对现有服务中配置的新设备的访问。 套接字编程与传统的输入输出有所不同,因为一个应用程序要使用套接字必须指定许 多细节,例如,远端计算机的i p 地址、协议端口号,并要说明该应用程序是作为客户还是 服务器( 即是否要发起建立一个连接) 。为避免单个套接字函数使用太多的参数,套接字 a p i 的设计者选择定义了很多函数,表3 1 列举了套接字a p i 的关键函数。 表3 1 套接字a p i 的关键函数 函数名使用者 作用 s o c k e ts e r v e r s 初始化一个套接字 a c c e p t s e r v e r s 接收用户的连接请求 b i n d s e r v e r s服务器端绑定i p 地址和端口 c l o s es e r v e r sa n dc l i e n t 终i 卜与对方的通信 c o n n e c tc l i e n t 连接服务器 g e t p e e m a m e s e r v e r s 获取客户端的i p 地址 l i s t e n s e r v e r s 监听连接服务器的请求 i o 数据库集群负载均衡技术的研究 r e c vs e r v e r sa n dc l i e n t 接收对方发米的信息 r e c v m s g s e r v e r sa n dc l i e n t 接收对方发来的报文 r e c v f r o ms e r v e r sa n dc l i e n t接收对方发来的报文同时获取对方的地址 s e n ds e r v e r sa n dc l i e n t 向对方发送消息 s e n d m s g s e r v e r sa n dc l i e n t 向对方发送一个报文 s e n d t os e r v e r sa n dc l i e n t 发送一个报文 s e t s o c k o p t s e r v e r sa n dc l i e n t改变套接字的选项 s h u t d o w n s e r v e r sa n dc l i e n t终止与对方的联系 3 3 2 服务器和中心节点的通信过程 数据库服务器和中心节点之间需要定时的交换服务器自身的状态信息和负载状况的 性能信息,对通信过程中信息的可靠性和准确性要求较高,由于基于连接的套接字提供的 是面向连接的服务,通信时要经过建立连接、使用连接、终止连接这三个过程,能提供可 靠、有序和无差错的服务,因此在该系统中采用了基于面向连接的套接字通信。 使用流套接字实现网络中不同主机间的通信属于典型的服务器客户机模型,即客户端 向服务器发送服务请求,服务器根据该请求提供相应的服务。为了实现服务器与中心节点 之间的通信,服务器和中心节点都必须创建套接字。中心节点在创建套接字后,需要指定 监听的端口来等待服务器,此外,还有绑定端口号的操作。之后,中心节点将处于监听状 态,等待服务器来连接指定端口。当接收到服务器的连接请求后,中心节点调用a c c e p t 函 数来建立与服务器间的通信。在成功建立通信后,就可以通过r e a d 函数或w r i t e 函数进行 通信。通信过程如图3 3 。 数据库集群负载均衡技术的研究 客户端 i l 创建s o c k e t 1 l 连接服务器 1 l i 发送信息 1 l l 读取接收信息 创建s o c k e t 上 端e l 绑定 j r 监听端口通信 土 l 接收连接请求 上 l 读取接收信息 上 l 发送信息 服务器端 卜j 图3 3 流套接字通信示意图 对于中心节点来说,程序通过调用s o c k e t 函数,建立了监听连接的套接字,然后调用 b i n d 函数,将套接字与地址信息关联起来。调用l i s t e n 函数实现对该端口的监听,当有连 接请求时,通过调用a c c e p t 函数建立与客户机的连接,最后,调用r e a d 函数来读取服务器 发送过来的消息,当然也可以使用r e c v 函数实现相同的功能。 对于服务器节点节点来说,比较其中心节点,实现较为简单。程序首先通过调用s o c k e t 函数创建通信所需的套接字,然后调用c o n n e c t 函数来连接中心节点,在成功建立连接后, 通过调用w r i t e 函数向服务器发送指定的消息。由于中心节点要监听和接受多个服务器节 点的请求,我们在程序里引入了多线程机制,让一个中心节点监听平接受多个服务器节点 的请求,同步的接受服务器节点的性能和负载参数。采用多线程的通讯方式,将大大地提 高中心节点的利用效率,并能使中心节点能具备完善的服务功能,提高中心节点的效率。 3 3 3 实现流套接字所使用的函数 在使用流套接字通信时,有的函数被服务器和中心节点共用,例如s o c k e t 函数、s e n d 函数、r e c v 函数、c l o s e 函数等。有的函数只被其中的一端所使用,例如:仅供客户使用的 c o r l l l e c t 函数。下面对这些函数做一下简单的介绍。 服务器端和中心节点共同使用的函数: 1 2 i 数据库集群负载均衡技术的研究 s o c k e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息化背景下探究式教学模式的应用研究
- 别墅现场勘察方案(3篇)
- 项目验收建设方案(3篇)
- 物业售后管理服务方案(3篇)
- 房子方位改造方案书(3篇)
- 智能平板餐厅厨房管理助手创新创业项目商业计划书
- 船载移动卫星通讯设备创新创业项目商业计划书
- 汽车数据资产管理创新创业项目商业计划书
- 旧小区改造电气方案(3篇)
- 汽车数字孪生创新创业项目商业计划书
- 2025中国银行网上“企业金融”自助贷款授信合同
- 2025年西藏自治区辅警招聘考试考试试题库及一套完整答案详解
- 办公楼建设工程设计方案
- 原料药中亚硝胺杂质的风险评估实操
- 税种知识培训课件图片
- 产品开发项目管理制度
- 液氧站安全管理制度
- 水洗泥项目可行性研究报告模板及范文
- 2025年广东省康复产业蓝皮书-前瞻产业研究院
- 2025至2030年中国中间相炭微球行业市场运行格局及产业需求研判报告
- 2025至2030年中国汽车空调过滤器行业市场现状分析及前景战略研判报告
评论
0/150
提交评论