分布式数据库同步中间件系统的设计与实现
2022-12-06梁懿陈又咏董晓褀张富林
梁懿,陈又咏,董晓褀,张富林
(福建亿榕信息技术有限公司,福建,福州 350003)
0 引言
随着当前信息技术和时代经济的迅猛发展,各级政府和企业相继建立了属于自己的数据库管理系统,以满足信息存储和信息共享等多方面的需求,为部门内部或者与公众之间的信息建立桥梁。各个数据库都是相对独立的,保证各个数据库中数据消息的一致性是当前关注的热点。同步中间件技术可有效确保数据一致性的特点,减少了用户访问数据库的时间,节省了更多资源。因此,本文基于分布式数据库同步系统,采用中间件技术和XML格式设计了同步中间件系统,该系统在满足数据的一致性的同时,还能避免所传输数据信息的安全性。
1 相关技术及理论研究
1.1 分布式数据库相关概述
1.1.1 分布式数据库
分布式数据库是指将同一个数据系统存放在多个节点的数据库中,引入多个数据副本,并且各个节点的数据副本均能对同一个数据进行操作,因此保证所有节点的数据的一致性是确保系统正常运转的先决条件。分布式数据库给用户和系统带来了很大的便利条件,一方面,用户只需访问本地数据库,减少访问延迟时间和通信损耗,从而提高系统的使用性能;另一方面,多个数据库的同时使用会提高数据的吞吐量,并且系统不会因为某个数据库出现故障而瘫痪,增强了数据的实用性和系统的安全性。
1.1.2 数据库同步
当一个数据库系统中同时存在两个或多个数据库,系统管理人员通过相关技术手段将其中一个数据库中的数据传输到另外的数据库,并能确保2个数据库中的数据完全一致,此操作过程称为数据库同步。其他数据库节点中的数据会随着发生改变的数据库而变化,确保数据的完整统一。
1.2 数据库中间件技术
中间件技术是负责前端应用程序和系统之间传递数据的纽带,以实现稳定高效的目的。分布式数据库可借助中间件技术共享数据资源,它位于服务器操作系统之上,帮助用户灵活高效地开发复杂的应用软件。本文设计的同步中间件技术可有效达到系统预期效果,确保传输数据的同步性和一致性[1]。
1.3 XML技术
XML(可扩展的标记语言,extensible markup language)作为一种显示数据的语言,它以良好的数据储存格式、可延展性以及高度结构化的优点使数据在网络中进行无障碍的传输,并呈现给用户。通过XML转换格式,对传输的数据封装或解析起到至关重要的作用,并提高了系统的可操作性、安全性以及满足不断增长的应用需求。
2 分布式数据库同步中间件系统的设计
2.1 需求分析
随着各大数据库同步系统的建立,确保数据完整性和及时同步性是当今社会关注的重点内容。现存的分布式数据库同步系统还不成熟,常常会出现数据丢失、出现故障的情况。为避免上述情况的发生,确保分布式数据库同步中间件系统的高效稳定是系统的需求,减少各个数据库系统对接时发生的错误信息,保证运行稳定,数据同步。另外,在设计同步中间件技术需遵循3大设计原则,稳定、可靠、可扩展性。
2.2 设计目标
本系统的设计目标是数据可以在分布式数据库之间稳定完整地传输,能够避免数据的丢失,保证在出现异常传输情况时可以及时有效地处理。
2.3 详细设计
2.3.1 系统模型的建立
在分布式数据库中,各个节点数据副本之间功能相同,地位平等。数据库和数据副本之间是通过同步中间件设计的通信模块进行同步数据的传递,进而保证所有数据副本中数据的一致性。系统的架构如图1所示。
图1 系统架构图
由图1可知,数据副本的节点之间是通过网络进行连接的,每个节点由数据库同步中间件和数据库系统两部分构成。
数据同步中间件系统负责实时监测和解析并加以处理数据的过程,若分析结果显示未出现异常,直接继续下一数据传输步骤,完成数据通信模块;若发现有异常冲突数据产生,系统将终止操作并返回上述程序。在分布式数据库系统中,每一个节点都拥有独立的数据库系统,通过数据库系统方能完成数据传输,分为本地数据库和远程数据库[2]。
2.3.2 系统功能模块
在分布式数据库中,数据库同步中间件是整个系统的核心组成部分,如图2所示。根据数据之间的传输关系,本文设计的数据库中间件划分为上层端口、数据管理模块、冲突处理模块、数据通信模块、接收端模块、下层接口共6个主要功能模块。
图2 同步中间件系统设计结构图
(1) 上层端口
用于连接前端应用程序。
(2) 数据管理模块
数据管理模块分为数据捕获和解析两个分支,用于捕获和判断分析需同步的数据。
(3) 冲突处理模块
处于分布式环境下,多个数据副本的节点可同时对同一数据进行操作,从而产生数据冲突的情况,故在系统中设计了冲突处理模块,用于检测用户提交的数据是否冲突,如冲突,返回并终止数据的传输,避免造成输入混乱。
(4) 数据通信模块
通信模块是数据库和数据副本之间的数据传输纽带,它将系统中需同步的数据及时有序地传递到每个数据副本节点上,无论更新哪个节点的数据信息,其他成员节点都能接收到相应的同步的信息或数据。为了方便系统对同步数据的转换和解析,本设计结合XML技术,将同步的数据通过通信模块封装成XML格式发送给其他节点。
(5) 接收端模块
接收通信模块传入的消息并根据提取信息更新数据库,同时在更新完数据库时需将确认信息回传给通信模块,便于下组信息的发送。
(6) 下层接口
负责连接需同步的数据库。
2.3.3 中间件工作流程
分布式数据库同步中间件工作流程如下所述:
(1) 负责与数据库A连接的应用程序,经上层接口将同步数据发送给数据管理模块;
(2) 数据管理模块负责对上述的数据捕获和解析,完成后转发给冲突处理模块;
(3) 冲突处理模块对接收的数据进行检测是否存在冲突,如冲突,将终止并返回,无冲突,直接发送给数据通信模块;
(4) 通信模块读取上述传递过来的数据信息,通过网络将信息发送给接收端模块;
(5) 一旦发现有信息传入进来,接收端模块取出信息,并根据消息内容更新数据库;
(6) 完成了数据的更新,接收端模块会将确认信息回传给通信模块;
(7) 收到确认消息后,通信模块再发送下一组消息。
(8) 最后所有需同步的数据通过下层接口传输给目标数据库B和数据库C。
3 分布式数据库同步中间件系统的测试与验证
3.1 功能模块实现的可行性分析
根据上述对分布式数据库同步中间件系统中各个功能模块的设计,现对各功能模块实现的可行性进行如下分析,功能模块实现流程如图3所示。
图3 功能模块实现流程图
系统设计的功能模块的实现就是根据上述流程图进行,前提必须是数据管理系统和数据库中的数据对象都是相同的,各个功能模块相互配合,最后通过接收端模块将数据更新到多个数据库中,保证了数据库的一致性。
3.2 测试环境
本系统测试环境的配置情况如表1所示。
表1 系统测试环境配置表
3.3 测试数据
在数据库A中加入1条信息内容,查看数据库B和数据库C是否含有更新的数据[3]。测试数据信息如表2所示。
表2 测试数据信息表
3.4 测试步骤
具体的测试步骤如图4所示。
图4 测试步骤流程
经过对系统测试,对于数据库A中数据的新增,修改和删除操作都能在数据库B和C得到同步数据。
3.5 系统的验证过程
3.5.1 安全性验证
系统安全性包含两方面的安全,一是消息在传输的过程中是否安全,数据是否会丢失;二是传输的数据对象均被转化成XML格式,故在任何时间查看通信模块中的消息都是无法直接读取的,从而保证该数据内容的安全。通过上述测试结果可知,同步中间件系统中的数据未丢失,保证了系统的安全性[4]。
3.5.2 及时性验证
验证系统的传输数据的及时性应将网络、分布式数据库和服务器配置等因素考虑在内,数据同步消耗时间的具体数据如表3所示。由耗时数据可知,数据同步的及时性满足系统需要。
表3 及时性验证数据表
3.5.3 冲突性验证
本文选取2个用户同时在数据副本B和数据副本C输入相同的事物(并发事务),这时系统中的冲突处理模块发挥作用,检测到处于不同位置的数据节点在更新同一个数据,终止事物并返回,结果表明系统的冲突性处理基本符合要求[5-6]。
3.5.4 同步性验证
验证系统的同步性的先决条件是确保系统中各个模块操作正确、运行稳定,在此基础上监测本地数据库和各数据库节点中的数据是否一致,测试结果显示:当更新任何一个数据库中的消息,其他节点中的数据也会及时的改变为更新后的数据,所含内容相同[7]。
4 总结
本文讨论了分布式数据库同步的基本理论知识和相关技术后,设计了一款基于中间件技术的分布式数据库同步的系统。并针对系统中设计的数据管理、冲突处理、数据通信以及接收端等各大功能模块做了详细的阐述说明。最后对本系统进行了测试和验证,执行情况良好,保证了传输数据的有效性和系统的可靠性。另外对于数据冲突处理模块的设计还不够完善,待于后续认真研究。