




已阅读5页,还剩53页未读, 继续免费阅读
(计算机科学与技术专业论文)基于mrb消息队列的分布式数据库同步的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于m l 强消息队列的分布式数据库同步的 研究与实现 摘要 近年来,随着计算机网络和数字通信技术的飞速发展,分布式数 据库的应用日益增加。所谓分布式数据库是指数据库中的数据在物理 上是分布的但在逻辑上是一个整体的数据库系统,为了获得更高的可 用性,可靠性和安全性,提高系统效率,通常会在分布式数据库中引 入多个数据副本,如何保证这些副本数据的一致性是分布式数据库系 统的一个核心问题,也是本文的研究重点。 目前,在分布式数据库领域,人们提出了多种方法来维护数据的 一致性,但它们都存在一定的使用局限性。 本学位论文在深入研究和分析比较了现有的各种维护分布式数 据一致性的策略( 两阶段事务提交协议,数据复制,辅助软件使用等) 的基础上,融合消息队列机制和副本控制方法的思想,结合实际项目 设计并实现了一种基于分布式消息请求代理m i m 消息队列的较为实 用的数据同步方法。本文详细论述了数据库同步系统的设计思想和工 作原理,并着重解决了该方法实现中会遇到的几个重要问题。例如, 如何利用消息队列技术,利用廉价的网络资源实现数据的传输;针对 系统的并发执行引起的冲突问题,提出了基于优先级和时问戳的冲突 解决方案;网络故障恢复等。 关键字:分布式数据库,数据同步,消息队列,消息请求代理m r b r e s e a r c ha n di m p l e m e n t :a t i o n o fs y n c h r o n i z 枷o no fd a m a s es y s t e m b a s e do n m r b r e c e n t l y ,w i t ht h er a p i dd e v e l o p m e n to fc o m p u t e rn e t w o r k 柚dd i g i t a l c o n l m u n i c a t i o nt e c h n 0 1 0 9 y ,t h ea p p l i c a t i o n so fd i s t r i b u t e dd a t a b a s e i n c r e a s e t h ed i s t r i b u t e dd a t a b a s ei sad a t a b a s es v s t e mo fw h i c ht h ed a t a i sp h y s i c a l l yd i s t r i b u t e db u tl o g i c a l l yc e n t r a l i z e d i no r d e rt og e tah i g h e r 峪a b i l i t y ,r e l i a b i l i t ya n ds e c u r i t y ,a l s ot 0i m p m v et h ee f f e c to fs y s t e m ,w e u s u a l l yu s er e p l i c a si nd i s t 抽u t e dd a t a b a s es y s t e m s oh o wt 0m a i n t a i n t h ec o n s i s t e n c yo ft h et e p l i c 舔i sb e c o m i n gak e yp r o b l e mi nd i s t 曲u t e d d a t a b a s es y s t e m ,w h i c hi sa l s ot h em a i ns m d yo ft h i st h e s i s a tp r e s e n t ,i f lt h ef i e l d so f 山ed i s t r i b u t e dd a t a b a ,m a n ym e t h o d s h a v eb e e np u tf b n a r dt om a i n t a i nt h ed a t ac o n s i s t e n c y ,b u tt h e ya uh a v e c c r t a i nl i m i t so na p p l i c a t i o n s a sar e s u l t ,w h i c hm e t h o di st h em o s t s u i t a b l eo n et ob et a k e nt 0m a i n t a i l lt h ed a t ac o n s i s t e n c vi no u ra c t u a l p m i e c tb e c o m e so n eo ft h em o s ti m p o r t a n tp r o b l e m i i a s e do nh a v i n gs t u d i e da n dd e e p l ya n a l y z e dd i v e r s i f i e dm e t h o d s f o rm a i n t a i n i n gd a t ac o n s i s t e n c yn o we x i s t ,柚dc o m p a r e dt h ea d v a n t a g e s b e 咐e e nt h e i i l ,t h i st h e s i s ,c o m b i n i n gt h et h e o r yo fm e s s a g eq u 即e m e t h o d 卸dr e p l i c a sc o n t r o lm e t h o d ,d e s i g n sa n dr e a l i s e sak i n do fs y s t e m w h i c hi sb a s e do nm e s s a g eq u e u em r b t 1 1 i st h e s i sa d d r e s s e di t s e l fo n t b ed e s i g nt h i n k i n g 卸dw o r kt h e o r yo ft h ed a t a b a s es y n c h r o n o 惦s y s t e m i nd e t a i l ,a n dw h a t sm o r ci tp u t se m p h a s e s0 ni n v e s t i g a “n gs e v e r a l i | 1 1 p o n 锄tp r o b l e 娜t h a tw i l lb em e tw h e nd e v e l o p i n gt h em e s s a g eq u e u e b a s e dd a t a b a s es v n c h r o n 伽ss v s t e m ,s u c h 髂h o wt or e a l i s et h ed a t a t 瑚s m i t t i n gb yu s i n gt h em e s s a g eq u e u e ;h o wt od e a lw i t ht h ec o n f l i c t p r o b l e m sc a u s e db yt h ep a r a l l e le x e c u t i o no ft r a n s a c t i o n s ,h o wt 0s o l v e t h ef a u l t yp r o b l e m 柚ds 0o n l 【e yw o i m s :d i s l r i b u t e dd a t a b a s es y s t e m ,d a t ac o n s i s t e n c y ,m e s s a g e q u e u e ,m e s s a g er e q u e s tb r o k e rm r b 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均己在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 0,l1 本人签名: z x堂日期:! = 2 :! ! 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位 本人签名: 导师签名:釜撇魄藿| 匿 一 一 范 一 一 骼a 二 于 一 l 属一弋 茬玉 孚 北京邮电大学硕l 学位论文基于m r b 消息队列的分布式数据库问步的研究与实现 l 1 选题背景及意义 第一章绪论 计算机技术的飞速发展,给信息产业带来了前所未有的繁荣和辉煌。随着计 算机应用技术的不断推广和使用的不断深入,人们对计算机的依赖越来越强,同 时对计算机的要求也越来越高。传统的单计算机系统在功能和性能上已经不能满 足人们的需要,由网络连接多台计算机系统所构成的分布式系统已经成为当今的 主流系统。计算机体系结构的发展,使传统的软件系统也面临新的挑战从集 中走向分布。在这种背景下,在数据库领域中,分布式数据库d d b s ( d i s t 曲u t c d d 她i b a s y s t 锄) 技术己成为一个主要应用方向。 由于分布式数据库系统符合当今信息系统应用的需求,符合当今机构组织的 管理思想和管理方式,尤其是那些在地域上分散而管理又相对集中的大集团、大 机关等,如全球性或全国性的公司、银行、连锁店以及全国性人、财、资源、环 境管理机构和军事国防部门等等,因此分布式数据库得到了广泛的应用,同时, 业内对分布式数据库系统的研究和开发变得更加活跃。 在分布式数据库中,出于应用或安全等方面的原因,会使同一个数据块重复 出现在网络的多个站点中,这样就出现了数据冗余。如何以最小的开销保持数据 库系统中数据各冗余副本之白j 的一致性是分柘式系统必须解决的问题。 本文正是在此背景下,以某企业的报文传输管理系统中的分布式数据库的数 据一致性解决方案为实例,对这个课题做了一个详细的研究。 1 2 研究生期间工作 研究生期间,笔者参与了企业网络管理和通信软件方面的项目,熟悉电信管 理网( t c l e c o m m u n i c a t i o nm 柚a g c 珊e n tn e t 、o r k ,t m n ) 的理论与应用。总的来 说,攻读硕士学位期间参与的研发工作主要如下: 企业报文传输管理系统服务端子系统的设计开发,包括前期系统需求分析, 功能设计实现、测试、培训以及后期的技术支持和软件维护工作。 企业报文传输管理系统管理终端交互子系统的设计开发,完成交互流程的设 计、实现、测试工作。 1 3 论文结构 本文共五章,其内容如下: 北京邮电人学硕i 二学位论文基于m r b 消息队列的分布式数据库h 步的研究0 实现 第一章绪论。绪论主要描述问题的研究背景和研究意义。 第二章相关技术介绍。本章首先介绍分布式数据库的定义、特点、体系结 构和分类,接着较详细的介绍了消息服务系统m s s 的特点、体系结构以及消息请 求代理中问件m r b ( m e s s a g er e q u e s tb r o k e ) 中消息队列的概念与使用。 第三章分布式数据库同步技术的研究。本章详细介绍了目前主流的数据一 致性策略:两阶段提交机制、数据复制、辅助软件使用等,并在这些策略的基础 上,结合。企业报文传输管理系统”设计了一种基于m r b 消息队列的分布式数 据同步策略。 第四章基于m r b 消息队列的数据同步系统的实现。结合实际项目,对基于 消息队列的数据同步策略的具体实现做一个详细的说明。 。 第五章结束语。总结全文并提出论文中可进一步改进的地方。 最后为参考文献和致谢部分。 2 北京啦大学哒i 兰 娑茎 摹fm i m 消息队列的分布式教据库同步的研究与实现 第二章相关技术介绍 2 1 分布式数据库系统 当前数据库系统数据的设计与使用主要存在以下几种方式嗍: 集中式 将所有数据存放在个站点上。这种方法的好处是数据库的更新较为容易, 易于保持数据的一致性。不过这种方法也存在明显的局限性,例如对于不在中央 站点上的应用就失去了本地性,比较依赖网络的通信状况,取决于单个数据库存 放站点运行的情况,从而降低了应用的执行效率,也降低了系统的可用性。 完全重复式 在每个站点重复存放数据,这种方法的好处主要是使得对数据库的只读使用 可在每个站点本地进行,增加了应用的执行效率。但是也因此增加了修改数据的 复杂性,需要在所有的相关站点更新数据库,所以保持数据的一致性比较困难。 分布式 各站点数据库中只存放和本地站点有对等更新关系站点的注册信息和事务 日志信息。因此在数据更新的时候并不需要更新所有的数据库,只要更新和本站 点建立对等更新关系站点的数据库即可,这样既降低了更新数据库的复杂性,又 提高了数据的访问效率。 综合以上比较,鉴于分布式的特点和优越性,分布式数据库系统得到越来越 多的应用。由于数据库应用需求的发展和计算机硬件环境的改变,特别是计算机 网络与数字通信技术的飞速发展,分布式数据库成为计算机技术最活跃的研究领 域之一。 2 1 1 分布式数据库的定义 分布式数据库d d b ( d i s 埘b u t c dd a t a b a ) 简单来说【8 l 是计算机网络环境 中各站点上的数据库( 为了与集中式数据库相区别,称站点上的数据库为局部数 据库l d b ( l 0 c a ld a t a b a s e ) 的逻辑集合,也就是说d d b 是一组数据集,它们与 传统的数据库d b 一样也是结构化的数据集合,它们逻辑上属于一个系统,物理 上分布在网络的不同站点上。它们强调这组数据集的分布性和逻辑协调性。所谓 分布性,是指按应用的需要将整体数据分成一定结构的子集分散存储在各个站点 上。逻辑协调性是指各站点间的数据相互之间有严密的约束规则,子集在逻辑上 是一个整体。 北京邮电人学硕l 学位论文摹于m 陟消息队列的分布式数据库i 司步的研究与实现 从上述两个特性出发,可把d d b 当作由许多l d b 的逻辑集成,也就是说, d d b 是虚拟的( 逻辑的) ,真正存放的是分散在计算机网络上的各个物理数据 库。所以,在d d b 中有全局数据库( g l o b a ld a t a b a s e ) 和局部数据库( l o c a l d a t a b 勰e ) 的概念,全局数据库是逻辑的,局部数据库是物理的。 分布式数据库管理系统d d b m s ( d i s t r i b u t c dd a t a b a s em a n a g e m e n ts y s t e m ) , 是分布式数据库系统中的一个软件,它负责管理分布式环境下逻辑集成的数据的 存取、一致性、有效性、完整性等。由于它的分布性,所以在管理机制上除了数 据库管理系统应有的控制功能外,还必须有在网络通信协议上的分布管理特性。 在分布式数据库系统中,被计算机网络联结的每个逻辑单位,称为站点( s i t e ) 或结点( n 0 d e ) 。所谓地理位置上分散是指各站点分散在不同的地方,大可为 不同国家,小可为同一建筑物中的不同位置。所谓逻辑上集中是指各站点之间不 是互不相关的,它们是一个逻辑整体,并由一个统一的数据库管理系统进行管理, 这个数据库管理系统称为分布式数据库管理系统。 因此,所谓分布式数据库系统,是物理上分散而逻辑上集中的数据库系统。 分布式数据库系统使用计算机网络将地理位置分散而管理和控制又需要不同程 度集中的多个逻辑单位( 通常是集中式数据库系统) 联结起来,共同组成一个统 一的数据库系统。因此,分布式数据库系统可以看成是计算机网络与数据库系统 的有机结合。 2 1 2 分布式数据库的特点 一个用户如果只访问他注册的那个站点上的数据称为本地( 或局部) 用户或 本地应用;如果访问涉及两个或两个以上的站点中的数据,称为全局用户或全局 应用。 由此可见,一个分布式数据库系统应该具有如下特点【1 0 】: ( 1 ) 物理分布性 分布式数据库系统中的数据不是存储在一个站点上,而是分散存储在由计算 机网络联结起来的多个站点上。所以,分布式数据库系统的数据具有物理分布性, 这是与集中式数据库系统的最大差别之一。 ( 2 ) 逻辑整体性 分布式数据库系统中的数据物理上是分散在各个站点中,但这些分散的数据 逻辑上却是一个整体,它们被分布式数据库系统的所有用户( 全局用户) 共享, 并由一个分布式数据库管理系统统一管理。逻辑整体性是分布式数据库与分散式 数据库的最大区别。 ( 3 ) 站点自治性 4 北京邮屯大学硕i :学位论文 基于m r b 消息队列的分布式数据库同步的研究与实现 站点自治性也称场地自治性,各站点上的数据由本地的数据库管理系统 d b m s 管理,具有自治处理功能,完成本站点的应用( 局部应用) ,这是分布式 数据库系统与多处理机系统的区别。 以上是分布式数据库系统的三个基本特点,也是判别一个系统是否为分布式 数据库系统的依据。另外分布式数据库系统还具有其他特点,包括: ( 1 ) 数据独立性 数据独立性是数据库应用方面追求的主要目标之一。在集中式数据库系统 中,数据独立性包括两个方面:数据的逻辑独立性与数据的物理独立性。其含义 是用户程序、数据的逻辑结构、数据的存储结构三者无关。在分布式数据库系统 中,数据独立性包含了更多的内容,它包括三个方面:数据的逻辑独立性、数据 的物理独立性和数据分布的独立性亦称分布透明性。前两者的含义与集中式数据 库的含义相同。而分布透明性是指用户不必关心数据的逻辑分布,不必关心数据 是不是被复制以及副本的个数,也不必关心数据物理位置分布的细节,同时也不 必关心局部站点上数据库支持哪种数据模型。 ( 2 ) 集中与自治相结合的控制机制 在分布式数据库系统中,数据共有两个层次:一是局部共享,即同一站点上 的用户可共享本站点上局部数据库中的数据,以完成局部应用;二是全局共享, 即分布式数据库系统的用户都可共享在分布式数据库系统中的各个站点上存储 的数据,以完成全局应用。因此,分布式数据库系统常常采用集中和自治相结合 的控制机制。各局部的d b m s 可以独立地管理局部数据库,具有自治的功能。同 时系统又设有集中控制,协调各局部d b m s 的工作,执行全局管理功能。 ( 3 ) 事务管理的分布性 数据的分布性必然造成事务执行和管理的分布性。即一个全局事务的执行可 以分解为若干个站点上子事务的执行。同样事务的原子性、一致性、可串行性、 隔离性和永久性也需要考虑分布性。 2 1 j 分布式数据库系统的体系结构 一个系统的体系结构【8 】也称为总体结构。它定义了整个系统的各个组成部分 以及各组成部分的功能,相互之白j 的关系。在集中式数据库系统中,除了计算机 系统本身的硬件和软件外,主要组成部分有:数据库d b 、数据库管理系统d b m s 和用户( 一般用户和数据库管理员d b a ) 。分布式数据库系统在此基础上作了 扩充:数据库分为局部d b 和全局d b ;数据库管理系统分为局部d b m s 和全局 d b m s ;用户也分为局部用户和全局用户。如图2 1 所示: 5 北京邮电大学硕上学位论文基于m r b 消息队,q 的分布式数据库川步的研究与实现 图2 1 分布式数据库体吾结构图 局部用户要在本地数据库中进行认证,全局用户要在所有站点的数据库中进 行认证。其目的是为了增加数据库的安全性。 五1 4 分布式数据库的分类 对分布式数据库系统的分类目前尚没有统一的标准,但较为认同的分类方法 有两种。 一种是按构成分布式数据库系统的局部数据库管理系统的数据模型来进行 分类,另一种是按分布式数据库系统的全局控制系统类型束进行分类。 ( 1 ) 按局部数据库管理系统的数据模型分类 按照这种分类方法,分布式数据库系统可以分为如下两大类【i l j : 同构型( h o m o 窖c n c o u s ) d d b s 如果各个站点上的数据库的数据模型都是同一类型的( 例如都是关系型数据 库) ,则称该数据库系统是同构型d d b s 。但是,具有相同类型的数据模型若为 不同公司的产品,其性质也不尽相同。因此,同构型d d b s 又可分为两种: 北京邮l 乜人学硕i :学位论文 基于m r b 消息队列的分布式致据库同步的研究f j 实现 同构同质型:如果各个站点上的数据库的数据模型都是同一类型的( 例如都 是关系型的) ,而且是同一种d b m s ( 通常是同一个厂家的产品) ,则称该分布 式数据库系统是同构同质型d d b s 。 同构异质型:如果各个站点上的数据库的数据模型都是同一类型的,但不是 同一种d d m s ( 例如s y b a s c 、o 船c l e 等等) ,则称该分布式数据库系统是同构异 质d d b s 。 异构型( h e t c r o g e n c o u s ) d d b s 如果各站点上数据库数据模型的类型是各不相同的,则称该分布式数据库系 统是异构d d b s 。 ( 2 ) 按分布式数据库全局控制系统的类型分类 可以分为如下三类: 集中型d d b s :如果d d b s 中的全局控制信息位于一个中心站点时,称为集 中型d d b s 。这种控制方式有助于保持一致性,但容易产生瓶颈问题,且一旦中 心站点失效,整个系统就将崩溃。 分散型d d b s :如果在每一个站点上包含全局控制信息的一个副本,称为分 散型d d b s 。这种系统可用性好,但保持信息的一致性较困难,需要有复杂的设 施。 可变型d d b s :在这种类型的d d b s 中,将d d b s 系统中的站点分成两组,一 组站点包含全局控制信息副本,称为主站点;另一组站点不包含全局控制信息副 本,称为辅站点。若主站点数目等于一时为集中型,若全部站点都是主站点时为 分散型。 2 1 5 分布式数据库数据冗余与一致性需求的提出 对于分布式数据库系统,相同的数据往往被分布在各个不同的站点上,即存 在数掘的多个副本( 数据冗余) ,这种设计是由于以下两个原因: ( 1 ) 提高系统的可靠性和可用性。如果用户由于某种原因不能访问某个成 员数据库,那么他们可以访问另一个成员数据库上的相同片断。 ( 2 ) 提高“读”操作的本地性,以降低通信成本,特别是对读出比写入频 率高得多的那些应用。 2 2 消息服务系统m s s 2 2 1 m s s 简介 消息服务系统m s s ( m e s 姐g cs e r v i c cs y s t e m ) 是一种支持分布式运算的软件 7 北京邮电人学硕l 学位论文摹干m r b 消息队列的分布式数据库h 步的研究j 实现 产品。它的主要功能是为了解决应用实体与应用实体之间的信息交互。 众所周知,公共对象请求代理c 0 r b a ( c o m m o n0 b j e c tr c q u 路tb r o k e r a r c h i t e c t u r c ) 与q 3 接口的功能强大,采用它们实现的应用程序具有较好的程序 组织结构,且对于多厂商环境下的产品在一定程度上能够互联互通;i b m 公司的 m q ( m e s s a g cq u e u e ) 是支持消息队列的分布式运算组件,在银行系统等行业中 已得到广泛的应用。m q 支持多种机型、多种操作系统,且消息的传送可靠,因 而有利于在分布式运算领域应用。但这两者都存在着复杂度高的缺点,运行时占 有系统资源较多,系统开销大。同时它们难以掌握,对使用它们的程序员提出了 较高的要求。 m s s 【1 9 】参考了c 0 r b a 、q 3 、m q 的体系结构和相关技术,综合了它们三者 的优点,克服了冗余的缺陷,提供了较为完备的支持分布式运算的功能。它是一 个提供给网络程序员进行网络编程的在运输层之上的以消息为传送单位以名字 进行寻址的跨平台分布式运行环境。 m s s 具有如下几个特点: ( 1 ) 功能的完备性 m s s 不仅支持应用进程间点到点、点到多点的实时通信,而且对通信的内容 作了很好的抽象和组织;同时m s s 对应用程序的组织结构做出了很好的规划,使 得应用程序的丌发更加容易快捷,且结构满足一致性要求,便于合作丌发,便于 维护。 ( 2 ) 分层结构 m s s 采用了分层丌发技术,符合o s i 七层参考模型,结构清晰,易于扩展, 适合不同层次的开发。 ( 3 ) 便于调试跟踪 m s s 内设的跟踪命令可以看到应用实体间交互的各种信息流。m s s 调试器可 以仿真各种应用实体,这对应用实体的调试、容错带来了无穷的方便。 ( 4 ) 良好的移植性 在m s s 下开发的应用程序有较好的移植性,源代码不需要改动,只要重新编 译就可以在相应的操作系统下运行。 ( 5 ) 支持消息优先级 m s s 应用程序接口a p i 提供对消息队列优先级的支持,将有选择的先传送优 先级较高的消息,让其优先级得到保证。 ( 6 ) 通信的透明性 m s s 按名通信,网络对于程序员、管理员来说完全透明。 b 北京邮i 乜人学硕l :学位论文基于m r b 消息队列的分布式数据库同步的研究i j 实现 2 2 - 2m s s 体系结构 图2 2 消息服务系统m s s 体系结构图o ” m s s 的体系结构1 1 9 l 如图2 2 所示。m s s 由消息请求代理m r b ( m e s s a g c r c q u e s tb r o k e r ) 、m s s 调试器和m r b 应用实体组成,还有可选的应用级网关, 以便m r b 应用实体与其它分布式环境( 即第三方软件总线) 中的应用实体互联 互通互操作。 其各部分说明如下: ( 1 ) 业务 业务是m s s 在应用层的数据单位,使用系统提供的a p i 编写的业务对应于下 层传送的一条消息,这条消息一定是一个完整的传输实体。m s s 中的业务有三类: 业务请求,业务应答和业务通知。 业务请求是业务的一种,他由发送方( 称为业务请求者) 进行发送,接收方 ( 称为业务提供者) 对其进行解释和处理,处理的结果为产生业务应答( 可为多 个) 和无应答两种。产生业务应答时会自动把应答再返回给发送方。例如:前台 查询系统发送“请把部门= 技术部的所有职工的工资信息从数据库中取出并 返回查询结果”给后台数据库服务器,在这个描述中这条信息就称为业务请求, 前台的查询系统的应用实体就是业务请求者,数据库服务器的应用实体为业务提 供者。 业务应答是业务提供者对业务请求者发送而来的业务请求进行解释处理后 9 北京邮电大学硕i 二学位论文 基于m i m 消息队列的分布式数据库问步的研究与实现 产生的需要返回给业务请求者的结果消息。例如:上例中后台数据库服务器接收 到查询业务请求后进行解释,从数据库中取出所要求的记录,每条记录就可以作 为一个业务应答,编成消息后返回给发送请求的| j 台查询系统,可见同一条业务 请求可以有多个业务应答。 业务通知是无需接收方返回应答的一种业务,通常他用来告知对方一些状态 信息,概念上我们把发送业务通知的一方称为业务提供者,接收业务通知的一方 称为业务请求者。例如:后台数据库服务器端进行数据检索有时会很慢( 例如数 据量很大引起的) ,为避免前台查询系统等待检索结果超时,这时数据库服务器 可以在检索之前发给前台一条业务通知“系统j 下在检索,请稍后”。 。 无论是业务请求,业务应答或是业务通知都需要用唯一的业务标识柬定义。 ( 2 ) 消息 消息是业务在表示层的编码,是一个具有协议规定结构的完整传送单位。用 户程序调用系统提供的a p i 发送的任何一条业务对应的消息首先经过m r b ,由 m r b 转发到目的客户,目的客户接收到的消息也一定是一个完整的传输实体, 系统提供对接收消息的自动处理。 ( 3 ) 消息请求代理m r b 消息请求代理m r b 是m s s 的核心组件。它采用消息队列的形式转发连接在 其上的所有客户实体发送而来的消息。它将解析消息中的目的客户的标题,根据 目的客户的标题进行寻址,把消息传送给目的客户。消息的其他部分对m r b 来 说是透明的。 需要注意的是,不是任意标题的客户均可以在m r b 上传送消息,只有预先 在m r b 上注册过的客户才可以在m r b 上传送消息,客户的注册需要到m r b 人机 对话环境中用系统提供的注册命令进行注册。 ( 4 ) m r b 应用实体 m s s 中通信的基本单位。一个应用实体可以包含一个或多个m r bc l i e n t 。 ( 5 ) m r bc l i e n t m r bc l i e n t 称为消息服务系统的客户,其实就是上面所提到的连接在m r b 上的连接客户实体,它主要完成消息发送,消息自动接收和消息自动处理,每一 个m r bc l j e n t 在消息服务系统中是用客户标题( m r bt i t i e ) 来标识的,也是用 它来寻址的。 ( 6 ) m s s 调试器 m s s 调试器可以仿真各种应用实体,对应用实体的调试、修改带来较大便利。 ( 7 ) 应用级网关 应用级网关为了使m s s 分布式运算环境与其它厂商的分布式运算环境互联 1 0 北京邮电人学硕i :学位论文 基于m r b 消息队列的分布式数据库同步的研究j 实现 互通互操作而专门设计的一个中间件。 2 2 j 消息与队列的概念 在消息传递机制中,有两个比较重要的概念。一个是消息,一个是队列。消 息是指通信双方所需要传递的信息,它可以是各式各样的媒体,如文本、声音、 图像等等。消息最终的理解方式,为消息传递的双方事先商定。消息可以含有发 送和接收者的标识,这样只有指定的用户才能看到只传递给他的信息和返回是否 操作成功的回执。消息也可以含有时自j 戮,以便于接收方对某些与时间相关的应 用进行处理。消息还可以含有过期时间,它表明如果在指定时日j 内消息还未到达 则作废,这主要应用于时间性关联较为紧密的场合。 消息队列是发送和接收消息的公用存储空间,它可以存在于内存中或者是物 理文件中。消息可以以两种方式发送,即快递方式( e x p 化鹳) 和可恢复模式 ( r e v e m b l e ) ,它们的区别在于,快递方式为了消息的快速传递,把消息放置 于内存中,而不放于物理磁盘上,以获取较高的处理能力;可恢复模式在传送过 程的每一步骤中,都把消息写入物理磁盘中,以得到较好的故障恢复能力。消息 队列可以放置在发送方、接收方所在的机器上,也可以单独放置在另外一台机器 上正是由于消息队列在放置方式上的灵活性,形成了消息传送机制的可靠性。 当保存消息队列的机器发生故障而重新启动以后,以可恢复模式发送的消息可以 恢复到故障发生之前的状态。采用消息传递机制,发送方不必要再担心接收方是 否启动、是否发生故障等等非必要因素,只要消息成功发送出去,就可以认为处 理完成。 2 3 小结 本章介绍了数据库同步系统所用到的相关技术,内容包括: 1 ) 分布式数据库系统的概念、特点与分类。 2 ) 消息服务系统m s s 的概念、体系结构与应用以及消息队列的相关内容。 1 l 北京邮电人学硕l 学位论文摹于m r b 消息队列的分布式数据库间步的研究与实现 第三章分布式数据库同步技术的研究 3 1 现有数据一致性策略的研究 3 1 1 概述 数据库副本是对数据库的一种拷贝,它是一种冗余数据。一般来说,冗余数 据不仅浪费存储空间,而且容易造成各数据副本之日j 的不一致,应当尽量避免, 但是分布式数据库却是借助冗余数据来提高系统的可靠性、可用性以及改善系统 性能。因为当某一站点出现故障时,系统可以对另一站点的对等副本进行操作, 而不会因为某一站点的故障造成系统瘫痪。另外,系统还可以根据就近原则选择 距用户最近的数据副本进行操作,减少了系统的通讯代价,使得用户能够尽快得 到响应,改善整个系统的性能。 在分布式数据库中引入多站点数据的目的是为了获得较高的查询速度,即以 增加数据复制的代价来减少数据通信的代价,并增加系统的高可靠性和高可用 性。这样就带来一个新的问题,即如何维护分布式数掘库的一致性,特别是那些 具有多副本数据的一致性。由于数据复制在多个站点上,一旦对其中某个副本进 行更新,就必须保证对这个数据的所有复制副本都做同样的更新。 以下讨论目前比较流行的几种数据同步策略。 3 1 - 2 介质传输技术 这是较早以前所采用的一种同步技术。即将更新的数据存储在物理介质中, 例如文件磁盘等,通过传统的通信方式( 如邮寄等) 发送到欲同步的站点,再由 目的站点进行相应数据的更新。此方法由于更新的时延很大,已不再使用。 3 1 3 两阶段提交协议 为了更好的说明两阶段提交协议的分布式事务处理机制,首先介绍事务的概 念。 3 1 3 1 事务的概念 事务【1 5 】作为数据库的重要概念,是并发控制的基本单位。所谓“事务”是 一系列由单个用户或应用程序提交的数据库操作。在分布式数据库系统中,事务 是指一系列不可分割的操作序列,将数据库从一个一致性状态转变到另一个一致 1 2 北京邮电人学硕i :学位论文基于m r b 消息队列的分布式数据库同步的研究畸实现 性状态。事务具有a c i d 四个特性: 原子性( a u t o m a t i c ) :事务的原子性是指一个事务的操作要么全部执行, 要么全部不执行。原子性要求一个事务由于故障而中断时,它的部分结果也被取 消。事务不完成的原因一般有两个,即事务中止和系统故障。一个事务的中止可 能由该事务自己( 或其用户) 来请求,这可以是因为它的某些输入有错,或者发 现了某些情况使得完成该事务并不合适或没有用处。事务的中止也可以因与系统 有关的原因而由系统来强迫中止,典型例子为系统过载和死锁。在出现事务中止 时保证其原子性的措施叫做事务恢复,而在系统故障时保证原子性的措施叫做故 障恢复。 一致性( c o n s i s t e n c c ) :又叫可串行性。并发执行的几个事务,其操作的结 果应与以某种次序串行执行它们的结果相同。这种可串行化的并发调度是由数据 库系统的并发控制机制来完成,以保证并发事务执行时数据库状态一致。 隔离性( i s o l a t i o n ) :一个未完成的事务不能在其提交之前把结果暴露给其 他事务。为了避免级联式中止( 也叫做多米诺效应) 就需要这个特性,也就是说, 事务如果能观察到以后将被中止的事务的部分结果,它就必须被中止。值得注意 的是,如果这些事务中有几个已被提交的话,那将不得不取消它们。 持久性( d u m t i o n ) :一旦一个事务提交以后,系统必须保证其操作的结果 永不丢失,且与后续的故障无关。提供事务持久性的活动叫做数据库的恢复。 可串行性和隔离性主要涉及到多个事务对数据库进行存取操作时候的并发 控制机制;而原子性和持久性是为了保证数据库状态一致。 3 1 j 2 分布式事务 在分知式数据库系统中,分布式事务管理的目的在于保证事务的正确执行以 及执行结果的有效性,主要解决系统可靠性、事务并发控制和系统资源的有效利 用等问题。 分布式事务和集中式事务一样,具有原子性、一致性、隔离性和持久性的特 点。但由于分布式系统的特性,分布式事务在执行时将被分解为若干站点上的子 事务。为了保证子事务的正确调度执行,分布式事务必须在相应站点上为每个子 事务创建一个代理进程( 代理者) 执行该子事务。另外,在子事务的调度执行中, 必须有一个协调者进程协调各子事务的执行。一般来说,这样的协调进程由启动 该分布式事务的始发站点上的代理进程担任。这时该代理进程称为根代理者 ( r o o ta g e n t ) 。 根代理者的功能为: ( 1 ) 启动整个分布式事务。 ( 2 ) 请求其它参与站点创建本地代理执行子事务。 北京邮电大学硕 二学位论文 基于m r b 消息队列的分布式数据库州步的研究与实现 ( 3 ) 发出“事务开始”、“提交”和“撤销”原语。 3 1 j j 两阶段提交协议( 2 p c ) 两阶段提交协议是一种多副本自j 数据严格一致的方案,它能够保持副本自j 的 数据严格一致。在2 p c 中,各站点采取完全同步的方法来保证数据库的一致性, 也就是紧密一致性( t i g l l tc o n s i s t c n c y ) 。紧密一致性能够保证任何时刻整个分 布式数据库系统的数据一致性和全局事务的原子性。 两阶段提交协议把一个分布事务的事务管理分为两类:一个是具有协调作用 的代理者称为协调者,所有其他必须一起提交的代理者称为参与者。协调者负责 做出最后的提交决定或撤销决定,参与者负责本地子事务的动作。 2 p c 的基本思想是为全部参与者做出关于提交或撤销全部本地子事务的唯 一决定。如果其中有一个参与者不能本地提交其子事务,则全部参与者必须本地 撤销( 即本地事务的回滚) 。此协议由两阶段组成,第一阶段的目的是达到一个 共同的决定,第二阶段的目的是实现这个决定。 协议的原理如表3 1 所示: 表3 一l 两阶段提交协议原理 身份动作 协调者 在同志中写入“预提交”命令 发送“预提交”命令给所有参与者且丌始计时 参与者等待“预提交”命令 l f 参与者可以提交t h e n b e g i n 在同志中写入子事务的记录 在日志中写入。准备提交” 向协调者发。准备提交”信息 e n d e l s eb e g l n 在日志中写入“撤销” 向协调者发。撤销”信息 e n d 协调者等待接收所有参与者的应答信息并检查限时 i f 超时或收到至少一个“撤销”1 h e n b e g 【n 在日志中写入“全部撤销” 向所有的子事务发“撤销”命令 1 4 北京邮电人学硕l 学位论文基于m r b 消息队列的分布式数据库同步的研究t j 实现 e n d e l s e 收到全部“准备提交”b e g i n 在日志中写入“全部提交” 向所有的参与者发“提交”命令 e n d 参与者等待协调者的命令 根据命令在同志中写入“撤销”或“提交” 向协调者发“己执行”信息 执行“提交”或“撤销”命令 协调者等待接收所有参与者的“已执行”信息 在同志中写入。完成” 采用两段提交协议后,当系统发生故障时,各站点利用各自相关的同志信息 便可执行恢复操作。针对站点故障、丢失报文及网络分割等常见故障的恢复操作 过程描述如下: 1 站点故障 ( 1 ) 当参与者在写入“准备提交”前发生故障时,该参与者无法向协调者 发回答信息,因此当协调者等待超时后,将决定撤销事务。当该故障恢复后,重 启动过程无需收集其它站点的信息即可撤销事务。 ( 2 ) 参与者在写入“准备提交”后发生故障,这时其它的参与者可以正常 的结束该事务。提交”或“撤销”,因为协调者可以根据收到的应答决定“提交” 或“撤销”。因此,故障恢复后,重启动过程要访问协调者或参与者,以了解事 务己做出的决定,然后执行相应的操作。这里我们假设在日志中写入。准备提交” 记录和发送“准备提交”信息给协调者这两个动作具有原子性。 ( 3 ) 协调者在日志中写入“预提交”记录后,写入“全部提交”或“全部 撤销”前发生故障,这时己发出“准备提交”的参与者将等待协调者恢复。协调 者的重启动过程从头恢复提交协议,从。预提交记录中读出参与者的标志符, 重发“预提交”报文给参与者,重新执行提交过程。 ( 4 ) 协调者在写入“全部提交”或“全部撤销”记录后,在写入。事务结 束”记录前发生故障。在这种情况下,协调者恢复时必须给所有的参与者重发其 决定,收到信息的参与者不得不等待协调者的恢复。和( 3 ) 一样,参与者不应 该因为收到两次一样的命令而受影响。 ( 5 ) 协调者在日志中写入。事务结束”记录后发生故障,这种情况下事务 己结束,不需恢复处理。 2 报文丢失 北京邮电大学硕1 :学位论文 摹于m r b 消息队列的分布式数据库h 步的研究与实现 ( 1 ) 来自参与者的回答报文( “准备提交”或“撤销”) 至少丢失一个。 在这种情况下,协调者将等待回答而超时,整个事务被撤销。但它无法决定是站 点故障还是通讯故障,而参与者j 下确执行,它不会启动恢复过程。 ( 2 ) 丢失“预提交”报文,由于至少一个参与者收不到“预提交”命令, 因此参与者处于等待状态,而协调者也等待参与者的回答,所以协调者会因为等 待超时而撤销事务。 ( 3 ) 丢失“提交”或“撤销”报文,这种情况下参与者处于等待协调者命 令的状态下,当未收到命令时会因等待而超时,这时向协调者发请求重发该命令 的信息。 ( 4 ) 丢失了“己执行”报文,当协调者未收到全部的“己执行”报文时, 协调者会因等待而超时,这时协调者重发命令报文给参与者,这时参与者必须给 予“执行”报文回答,即使此时相应的子事务己不在活动也要重发。 3 网络分割 假设在出现网络分割时,整个网络分为两个组,包含协调者的组称为协调者 组,其它的则组成参与者组。这种情况对于协调者来说相当于参与者组中的多个 参与者同时发生故障,这时协调者可以做出决定,然后把命令发给协调者组中的 参与者,因此这些站点上的子事务可以结束。这与站点故障中的( 1 ) 和( 2 ) 两 种情况类似。对于参与者失去联系,这时认为出现故障。这种情况与站点故障中 的( 3 ) 和( 4 ) 相似。 3 1 3 4 两阶段提交协议的缺陷 从实际应用的角度来分析,2 p c 协议存在如下缺陷: 1 全局事务的可靠性低。分布式事务所包括的各台服务器必须时刻处于联 机状态( 由于网络中断等原因这在实际应用中是很难做到的) ,并且能够提交自 己执行的事务部分。如果提交的事务出于某种原因在某个站点发生故障,那么则 意味着所有站点的提交都失败,形成阻塞,降低了系统的可用性。 2 各站点的自治
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海淀柏油路面施工方案
- 社区医疗共建方案范本
- 广东人造植物墙施工方案
- 闽侯县蚊虫防治施工方案
- 2025年播音主持题库真题及答案
- 污水处理车间试卷及答案
- 2025年河北保定高碑店市公开招聘卫健局下属事业单位工作人员62名模拟试卷及一套完整答案详解
- 大棚自动化施工方案细则
- 支撑结构地下室施工方案
- 甘肃大厦景观灯施工方案
- 桥梁河床断面测量课件
- 中药质量检测技术
- 普外科肛肠科科室介绍
- 事业单位工勤人员技师考试职业道德复习试题及答案
- 2025年三级安全教育试题及答案
- 危化品经营许可证管理办法
- 2024和2025年中职高考对口升学(理论考试)真题卷【财经商贸大类】
- 苏教版一年级科学上册教学资源计划
- 矿山爆破施工管理制度
- AI技术赋能中小学教学模式创新与实践研究
- 装配钳工试题库及答案
评论
0/150
提交评论