基于多线程的分布式数据同步方法及其系统技术方案

技术编号:10790562 阅读:169 留言:0更新日期:2014-12-17 19:31
本发明专利技术的目的在于提供一种基于多线程机制的分布式数据同步方法及其系统,该方法和系统通过差异数据捕获、创建业务同步线程、对所捕获的差异数据进行处理,产生格式化差异数据表或者能够直接运行的SQL语句、本地持久化数据,以及传输结束后销毁本地磁盘数据,从而完成数据同步工作,本发明专利技术通过利用多线程同步机制使各分布式终端服务器之间的单个同步任务能够独立运行,使得数据能够在不占用当前服务资源的情况下进行高效传输。

【技术实现步骤摘要】
基于多线程的分布式数据同步方法及其系统
本专利技术涉及分布式数据的处理,具体来说涉及一种分布式数据的同步方法及其系统。
技术介绍
随着互联网技术的发展,单一的数据存储方式已经不再能满足组织或个人对于数据存储量、速度、安全性等方面的要求。为了保证数据存储的安全可靠性,读取速度提升、储存量大等要求,分布式存储已经逐渐成为当前很多组织或个人的首选方案。在分布式系统架构中,当用户界面需要操作或展示具体的业务数据信息时只需要到相应的分布式终端进行查询,为网络传输减轻负担的同时提高总体系统效率。在某个终端数据更新之后,为保证数据的一致性,差异数据要同步到其它各个终端服务器。分布式数据存储主要需解决的就是各终端系统服务器之间的数据一致性问题,根据时间特征性数据同步可分为实时数据同步和间歇性数据同步。分布式数据同步技术通过使各分布式终端的数据更新的同步,达到使数据分布存放的目的,从而实现数据库的分布式处理应用,大大增加站点的自治性。分布式数据同步方法中数据传输安全性和数据同步效率是验证方案可行性的两大因素,为降低数据传输过程中的风险和提高数据传输效率,专利技术一种高效且安全的分布式数据同步方法是有必要的。现今的分布式数据存储大多依靠产品或者服务本身对分布式环境下数据库服务器的数据进行同步,在互联网应用中比较通用的数据传输方式为基于WebService的数据同步机制。WebService实现数据同步原理如图1所示,SOAP消息文本数据携带较多的格式数据,且此种方式必须依托某项特定的服务或者产品,无论是在传输过程中还是在终端接受处理数据都会增加系统资源开销,影响传输效率的同时风险也随之增大。在当前
下怎样使数据同步更加自动化、提高数据传输安全性及效率是数据同步方案的度量标准。为解决以上所述问题,本专利技术提出多线程同步机制运用在分布式数据同步方案中,安全性和效率性同时得到保证。
技术实现思路
本专利技术的目的在于提供一种基于多线程机制的分布式数据同步方法,该方法利用多线程同步机制使各分布式终端服务器之间的单个同步任务能够独立运行,使得数据能够在不占用当前服务资源的情况下进行高效传输。本专利技术的目的可通过以下的技术措施来实现:一种基于多线程机制的分布式数据同步方法,包括以下步骤:步骤A:差异数据捕获步骤,捕获并处理在终端分支服务器上对业务数据操作产生的差异数据。主服务程序通过监听器监听用户的请求行为,当终端用户发出修改请求时被监听到,此时主服务程序通过触发器触发线程工厂(即线程管理模块)创建业务同步线程。并对用户的请求进行行为分析,初步得出在当前分布式终端所产生的同步数据包。所述主服务就是当前用户的操作请求。步骤B:为了保证多线程条件下系统运行可靠。在线程工厂创建线程之前,由线程计数器判断是否可继续创建线程。若业务同步线程数大于N(N的值根据系统通常状态下的并发请求数与网络吞吐量,在系统中人为设定)时,线程工厂则拒绝创建业务同步线程,并提示“数据库连接异常”;若业务同步线程数小于N,则线程工厂继续判断目前运行的线程数并进入线程创建等待状态。其中,线程工厂在创建业务同步线程时,会根据当前业务流程的需要创建满足用户请求的业务同步线程,并根据用户请求所传的数据类型将数据分配给对应的业务同步线程。步骤C:对数据进行包装和整理,对所捕获的差异数据进行处理,产生格式化差异数据表或者能够直接运行的SQL语句。当前运行的主服务响应用户请求,同时所产生的差异数据会存储在临时数据集中。业务同步线程对数据集中的数据逐条分析并将其转化为对应可执行的SQL语句,为保证数据在后续的传输过程中不出现丢失将处理后的数据包持久化到当前服务器的本地磁盘中存储。在本地磁盘文件中存储了所需同步的分布式终端的数据库配置信息以及整理后的同步数据SQL。步骤D:当业务同步线程本地持久化数据之后就会脱离当前主服务的控制,单独运行,随后读取持久化到本地磁盘中的文件数据,根据所存储的各终端数据库信息以直连的方式连接到各终端数据库。数据传输过程中若出现异常,业务同步线程会延迟数秒后重新启动,待到数据全部传输完毕,并且没有出现异常时,业务同步线程会自动销毁本地磁盘数据,然后完成数据同步工作。本专利技术的另一目的在于提供一种用于实现上述方法的基于多线程机制的分布式数据同步系统,该系统包含的功能模块为:数据分析功能模块、线程管理模块、数据处理模块及线程业务处理模块;所述数据分析功能模块用于差异数据的捕获,捕获并处理在终端分支服务器上对业务数据操作产生的差异数据。主服务程序通过监听器监听用户的请求行为,当终端用户发出修改请求时被监听到,此时主服务程序通过触发器触发线程工厂(即线程管理模块)创建业务同步线程。并对用户的请求进行行为分析,初步得出在当前分布式终端所产生的同步数据包;所述线程管理模块用于在线程工厂创建线程之前,由线程计数器判断当前服务器业务同步线程数,当业务同步线程数大于N(N的值根据系统通常状态下的并发请求数与网络吞吐量,在系统中人为设定)时会拒绝创建业务同步线程,并提示“数据库连接异常”。若业务同步线程数小于N,则线程工厂会判断目前运行的线程数并进入线程创建等待状态。线程工厂在创建业务同步线程时,会根据当前业务流程的需要创建满足用户请求的业务同步线程,并根据用户请求所传的数据类型将数据分配给对应的业务同步线程。所述数据处理模块用于对数据进行包装和整理,对所捕获的差异数据进行处理,产生格式化差异数据表或者能够直接运行的SQL语句。当前运行的主服务响应用户请求,同时所产生的差异数据会存储在临时数据集中。业务同步线程对数据集中的数据逐条分析并将其转化为对应可执行的SQL语句,为保证数据在后续的传输过程中不出现丢失将处理后的数据包持久化到本地磁盘存储。在本地磁盘文件中存储了所需同步终端的数据库配置信息以及整理后的同步数据SQL;所述线程业务处理模块用于当业务同步线程本地持久化数据之后就会脱离当前主服务的控制,单独运行,随后读取持久化到磁盘中的文件数据,根据所存储的各终端数据库信息以直连的方式连接到各终端数据库。数据传输过程中若出现异常,业务同步线程会延迟数秒后重新启动,待到数据全部传输完毕,并且没有出现异常时,业务同步线程会自动销毁本地磁盘数据,然后完成数据同步工作。本专利技术对比现有技术,有如下优点:本专利技术在传统分布式数据同步技术中使用了多线程机制,对不同批次的数据同步请求创建了独立的业务同步线程,避免了在一次数据同步任务完成之前其它所有请求必须等待的不足,充分利用系统服务器的运算能力及网络资源。多个线程可分别对不同目标数据库或服务器进行数据传输,在处理速度和响应速度上做到了大幅度的提升。附图说明图1为本专利技术分布式数据同步原理;图2为本专利技术基于多线程分布式数据同步方法架构图;图3为本专利技术多线程实现分布式数据同步流程图;图4为本专利技术分布式数据同步系统的部署结构图。具体实施方式在分布式系统架构中,实现多线程分布式数据同步方法的处理模块如图2所示:本专利技术提供一种基于多线程的分布式数据同步方法及其系统,方法实现的具体流程如图3所示,本方法主要是针对由于网络、地域或数据量庞大等因素致使系统分布式部署的保持数据一致解决方法。分布式数据同步系统的部署结构图如图4所示,其中任一分布式终端都可以作为发起本文档来自技高网
...
基于多线程的分布式数据同步方法及其系统

【技术保护点】
一种基于多线程机制的分布式数据同步方法,其特征在于包括以下步骤:步骤A:差异数据捕获步骤,捕获并处理在终端分支服务器上对业务数据操作产生的差异数据;主服务程序通过监听器监听用户的请求行为,当终端用户发出修改请求时被监听到,此时主服务程序创建业务同步线程,并对用户的请求进行行为分析,初步得出在当前分布式终端所产生的同步数据包;所述主服务就是当前用户的操作请求;步骤B:在线程管理模块创建线程之前,由线程计数器判断是否可继续创建线程;若业务同步线程数大于N时,线程管理模块则拒绝创建业务同步线程,并提示“数据库连接异常”;若业务同步线程数小于N,则线程管理模块继续判断目前运行的线程数并进入线程创建等待状态;所述N的值根据系统通常状态下的并发请求数与网络吞吐量,在系统中人为设定;步骤C:对数据进行包装和整理,对所捕获的差异数据进行处理,产生格式化差异数据表或者能够直接运行的SQL语句;并且,当前运行的主服务响应用户请求,同时所产生的差异数据会存储在临时数据集中,业务同步线程对数据集中的数据逐条分析并将其转化为对应可执行的SQL语句,并将处理后的数据包持久化到当前服务器的本地磁盘中存储;步骤D:当业务同步线程本地持久化数据之后就会脱离当前主服务的控制,单独运行,随后读取持久化到本地磁盘中的文件数据,根据所存储的各终端数据库信息以直连的方式连接到各终端数据库。...

【技术特征摘要】
1.一种基于多线程机制的分布式数据同步方法,其特征在于包括以下步骤:步骤A:差异数据捕获步骤,捕获并处理在终端分支服务器上对业务数据操作产生的差异数据;主服务程序通过监听器监听用户的请求行为,当终端用户发出修改请求时被监听到,此时主服务程序创建业务同步线程,并对用户的请求进行行为分析,初步得出在终端分支服务器所产生的同步数据包;所述主服务就是当前用户的操作请求;步骤B:在线程管理模块创建线程之前,由线程计数器判断是否可继续创建线程;若业务同步线程数大于N时,线程管理模块则拒绝创建业务同步线程,并提示“数据库连接异常”;若业务同步线程数小于N,则线程管理模块继续判断目前运行的线程数并进入线程创建等待状态;所述N的值根据系统通常状态下的并发请求数与网络吞吐量,在系统中人为设定;步骤C:对数据进行包装和整理,对所捕获的差异数据进行处理,产生格式化差异数据表或者能够直接运行的SQL语句;并且,当前运行的主服务响应用户请求,同时所产生的差异数据会存储在临时数据集中,业务同步线程对数据集中的数据逐条分析并将其转化为对应可执行的SQL语句,并将处理后的数据包持久化到终端分支服务器的本地磁盘中存储;步骤D:当业务同步线程本地持久化数据之后就会脱离当前主服务的控制,单独运行,随后读取持久化到本地磁盘中的文件数据,根据所存储的各终端数据库信息以直连的方式连接到各终端数据库。2.根据权利要求1所述的方法,其特征在于:所述步骤A中,线程管理模块在调用主服务程序创建业务同步线程时,会根据当前业务流程的需要创建满足用户请求的业务同步线程,并根据用户请求所传的数据类型将数据分配给对应的业务同步线程。3.根据权利要求1所述的方法,其特征在于:所述业务同步线程由主服务程序通过触发器触发线程管理模块所创建。4.根据权利要求1所述的方法,其特征在于:所述步骤D中,所述本地磁盘文件中存储了所需同步的分布式终端的数据库配置信息以及整理后的同步数据SQL。5.根据权利要求1所述的方法,其特征在于:所述步骤D中,连接到各终端数据库的数据传输过程中若出现异...

【专利技术属性】
技术研发人员:朱永虎赵志勤朱金惟林玉凤
申请(专利权)人:中国南方电网有限责任公司超高压输电公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1