一种分布式系统及其数据同步方法

文档序号:7744355阅读:180来源:国知局
专利名称:一种分布式系统及其数据同步方法
技术领域
本发明涉及通信技术领域,特别是涉及一种分布式系统及其数据同步方法。
背景技术
随着 企业信息及业务的越来越庞大,在企业信息化的过程中,对于企业信息系统来说,业务分布式安装部署已经成为了最好的选择,而在分布式系统中,信息的存储方式是通过数据库进行存储的。其中,主数据库用于保存用户的配置信息或者业务汇总信息,并由用户进行业务配置信息及汇总信息的展示;而业务数据库用于存储业务数据,当用户界面需要展示具体的业务信息时,则需要到对应的业务数据库中进行查询。如图1所示,为一种分布式系统的结构示意图,其中,主数据库为业务配置数据库 Master,与分布式主服务器相对应,而各个业务数据库(例如,业务数据库slavel和业务数据库slaVe2)与分布式业务服务器相对应。当用户对业务进行配置,并存储到主数据库时, 则需要将相应的配置信息从主数据库中同步到相关的业务数据库中,以保持主数据库和业务数据库中配置信息的一致性。在现有技术中,主数据库和业务数据库需要同步的配置信息均在系统开发时就确定了,例如,当该配置信息中包括相应的表、字段、唯一标识等信息时,则在系统开发时需要确定同步哪些表,哪些字段,以及表的唯一标识等配置信息。但是,本申请发明人在实现过程中发现,在现有技术实际应用中存在以下问题在分布式系统上线之后,需要新增一些配置信息的同步需求时,这些配置信息无法从主数据库中自动同步到相应的业务数据库中,因而需要对现有的分布式系统进行重新开发,而且新增分布式服务器之间需要同步数据时,也需要对原有分布式系统重新进行适配开发,从而导致缺乏通用性和扩展性。例如,分布式系统开发时确定需要同步表A的A字段,如果新增同步需求为同步表A的B字段,则需要对现有的分布式系统进行重新开发,重新开发后的分布式系统确定需要同步表A的A字段和B字段。

发明内容
本发明提供一种分布式系统及其数据同步方法,以实现数据表的自动同步,简化开化的复杂度。为了达到上述目的,本发明提出了一种分布式系统的数据同步方法,该方法应用于包括主服务器和至少一个业务服务器的分布式系统中,所述方法包括以下步骤当监控到所述主服务器所存储的数据表的数据被更新时,确定是否需要将被更新的所述数据表的数据同步到对应的业务服务器;如果需要将被更新的所述数据表的数据同步到对应的所述业务服务器时,则获取被更新的所述数据表的配置信息以及对应的所述业务服务器的地址信息;根据获取的所述配置信息生成同步通知报文,并将生成的所述同步通知报文通过获取的所述地址信息发送给所述业务服务器;
所述业务服务器根据接 收的所述同步通知报文中的所述配置信息,对被更新的所述数据表的数据进行同步。确定是否需要将被更新的所述数据表的数据同步到对应的业务服务器,具体包括判断被更新的所述数据表的表名是否记录在预先维护的业务列表中,若被更新的所述数据表的所述表名记录在所述业务列表中,则确定需要将被更新的所述数据表的数据同步到对应的所述业务服务器;其中,所述业务列表中记录了需要同步到所述业务服务器的数据表的表名以及该表名对应的业务标识。所述方法还包括当在所述业务服务器中新增所述需要同步的数据表时,将所述需要同步的数据表的表名以及该表名对应的业务标识添加到所述业务列表。获取被更新的所述数据表的配置信息以及对应的所述业务服务器的地址信息,具体包括根据被更新的所述数据表的表名,从所述系统数据库的系统表中获取被更新的数据表的所述配置信息;以及在所述业务列表中查找被更新的所述数据表的表名对应的所述业务标识;并根据查找到的所述业务标识,从所述主服务器上预先存储的业务服务地址表中获取与查找到的所述业务标识对应的所述地址信息。所述数据表的所述配置信息至少包括表名、字段名信息、字段类型信息、唯一性标识信息;根据获取的所述配置信息生成同步通知报文,具体包括根据所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息生成所述同步通知报文。所述业务服务器根据接收的所述同步通知报文中的所述配置信息,对被更新的所述数据表的数据进行同步,具体包括所述业务服务器解析接收的所述同步通知报文,以获取所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息;所述业务服务器判断自身是否存储了与获取的所述表名对应的同名数据表;如果没有存储对应的所述同名数据表,则所述业务服务器根据获取的所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息,新建所述同名数据表,并根据新建的所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在新建的所述同名数据表中;如果存储有对应的所述同名数据表,则所述业务服务器根据获取的所述字段名、 所述字段类型以及所述唯一性标识信息、,对所述同名数据表的所述字段名、所述字段类型以及唯一性标识信息进行更新,并根据所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在所述同名数据表中。—种分布式系统,所述分布式系统包括主服务器和至少一个业务服务器,该分布式系统还包括
监控单元,用于监控所述主服务器所存储的数据表的数据是否被更新;确定单元,与所述监测单元连接,用于当所述监控单元监控到所述主服务器所存储的数据表的数据被更新时,确定是否需要将被更新的所述数据表的数据同步到对应的业务服务器中; 获取单元,与所述确定单元连接,用于当所述确定单元确定需要将被更新的所述数据表的数据同步到对应的所述业务服务器时,获取被更新的所述数据表的配置信息以及对应的所述业务服务器的地址信息;通知单元,与所述获取单元连接,用于根据获取的所述配置信息生成同步通知报文,并将生成的所述通知报文通过获取的所述地址信息发送给对应的所述业务服务器;所述业务服务器根据接收的所述同步通知报文中的配置信息,对被更新的所述数据表的数据进行同步。所述系统还包括业务列表存储单元,与所述确定单元连接,用于存储预先维护的业务列表;其中, 所述业务列表记录了需要同步到所述业务服务器的数据表的表名以及该表名对应的业务标识;所述确定单元具体用于,判断被更新的所述数据表的表名是否记录在所述业务列表中,若被更新的所述数据表的所述表名记录在所述业务列表中,则确定需要将被更新的所述数据表的数据同步到对应的所述业务服务器。所述系统还包括业务列表更新单元,当在所述业务服务器中新增所述需要同步的数据表时,用于将所述需要同步的数据表的表名以及该表名对应的业务标识添加到所述业务列表。所述主服务器中存储有系统表以及业务服务地址表;其中,所述系统表至少存储有表名、字段名信息、字段类型信息、唯一性标识信息;该业务服务地址表存储有一个以上的业务标识以及每个该业务标识对应的地址 fn息ο所述获取单元包括第一获取子单元,用于根据被更新的所述数据表的表名,从所述系统表中获取被更新的数据表的所述配置信息;以及第二获取子单元,用于在所述业务列表中查找被更新的所述数据表的表名对应的所述业务标识,并根据查找到的所述业务标识,从所述业务服务地址表中获取与查找到的所述业务标识对应的所述地址信息。所述通知单元,具体用于根据所述第一获取子单元获取所述表名、所述字段名信息、所述字段类型信息、所述唯一性标识信息生成所述同步通知报文,并根据第二获取单元获取的所述地址信息,将生成的所述同步通知报文发送给所述业务服务器。所述业务服务器还包括同步数据存储单元,用于存储同名数据表;其中,所述同名数据表中的表名与所述主服务器中数据表的表名相同;解析单元,用于接收并解析所述同步通知报文,以获取所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息;
同步单元,用于判断同步数据存储单元中是否存储了与获取的所述表名对应的所述同名数据表;如果没有存储对应的所述同名数据表,则所述同步单元根据所述解析单元获取的所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息,在所述同步数据存储单元中新建所述同名数据表,并根据新建的所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在新建的所述同名数据表中;如果存储有对应的所述同名数据表,则所述同步单元根据所述解析单元获取的所述字段名、所述字段类型以及所述唯一性标识信息,对所述同名数据表的所述唯一性标识信息、所述字段名以及所述字段类型进行更新,并根据所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在对应的所述同名数据表中。 与现有技术相比,本发明具有以下优点通过使用数据表监控器,实现数据表的自动同步,简化开化的复杂度;而且具有可扩展性,如果新增同步数据表的需求,只需要将该表名及所属业务ID加入到在业务ID-表名列表中即可实现,而无需对原有系统进行适配开发。


图1为现有技术中分布式系统结构示意图;图2为本发明提出的一种分布式系统的数据同步方法流程图;图3为本发明一种应用场景的示意图;图4为对应图3所示应用场景所提出的一种分布式系统的数据同步方法流程图;图5为一种同步通知报文的报文格式示意图;图6为对应图5的雇员表的同步通知报文的报文格式示意图;图7A和图7B为本发明提出的一种分布式系统的结构图。
具体实施例方式本发明中,通过使用数据表监控器监控主服务器上的数据表,当用户进行业务配置从而导致对数据表的内容进行更新时,则数据表监控器查询变化的数据表的表名是否为需要将配置信息同步更新到业务服务器的表名,如果是时,则将配置信息通知给业务服务器,并由业务服务器同步配置信息,从而实现了数据表的自动同步,简化开化的复杂度。基于上述思想,本发明提供一种分布式系统的数据同步方法,应用于包括数据表监控器、主服务器(与主数据库相对应)和业务服务器(与业务数据库相对应)的分布式系统中。其中,该数据表监控器由监控单元、确定单元、获取单元、通知单元等模块实现。构成该数据表监控器的这些模块既可以分别单独运行在该分布式系统中、主服务器或业务服务器上,也可以整体实现为数据表监控器,而该数据表监控器同样即可以运行在主服务器上,也可以运行在其他的设备上,或者独立运行,只要该数据表监控器能够监控到主服务器上的数据表即可。在本发明实施例中,以上述各模块单元整体实现的数据表监控器为例,对本发明实施例中的分布式数据库以及分布式数据库的运行方法进行举例说明。
具体的,在主服务器上存储了数据表,该数据表是业务配置对应的表项。例如,表1 所示的一张雇员表employee,用于存储公司雇员的基本信息,其中,该雇员表为主服务器上存储的数据表,该公司雇员的基本信息为相应的业务配置。在表1中,包括如下字段id (唯一性标识)、name (名称)、phone (电话)等字段。表 权利要求
1.一种分布式系统的数据同步方法,其特征在于,该方法应用于包括主服务器和至少一个业务服务器的分布式系统中,所述方法包括以下步骤当监控到所述主服务器所存储的数据表的数据被更新时,确定是否需要将被更新的所述数据表的数据同步到对应的业务服务器;如果需要将被更新的所述数据表的数据同步到对应的所述业务服务器时,则获取被更新的所述数据表的配置信息以及对应的所述业务服务器的地址信息;根据获取的所述配置信息生成同步通知报文,并将生成的所述同步通知报文通过获取的所述地址信息发送给所述业务服务器;所述业务服务器根据接收的所述同步通知报文中的所述配置信息,对被更新的所述数据表的数据进行同步。
2.如权利要求1所述的方法,其特征在于,确定是否需要将被更新的所述数据表的数据同步到对应的业务服务器,具体包括判断被更新的所述数据表的表名是否记录在预先维护的业务列表中,若被更新的所述数据表的所述表名记录在所述业务列表中,则确定需要将被更新的所述数据表的数据同步到对应的所述业务服务器;其中,所述业务列表中记录了需要同步到所述业务服务器的数据表的表名以及该表名对应的业务标识。
3.如权利要求2所述的方法,其特征在于,所述方法还包括当在所述业务服务器中新增所述需要同步的数据表时,将所述需要同步的数据表的表名以及该表名对应的业务标识添加到所述业务列表。
4.如权利要求2所述的方法,其特征在于,获取被更新的所述数据表的配置信息以及对应的所述业务服务器的地址信息,具体包括根据被更新的所述数据表的表名,从所述系统数据库的系统表中获取被更新的数据表的所述配置信息;以及在所述业务列表中查找被更新的所述数据表的表名对应的所述业务标识;并根据查找到的所述业务标识,从所述主服务器上预先存储的业务服务地址表中获取与查找到的所述业务标识对应的所述地址信息。
5.如权利要求4所述的方法,其特征在于,所述数据表的所述配置信息至少包括表名、字段名信息、字段类型信息、唯一性标识信息;根据获取的所述配置信息生成同步通知报文,具体包括根据所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息生成所述同步通知报文。
6.如权利要求5所述的方法,其特征在于,所述业务服务器根据接收的所述同步通知报文中的所述配置信息,对被更新的所述数据表的数据进行同步,具体包括所述业务服务器解析接收的所述同步通知报文,以获取所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息;所述业务服务器判断自身是否存储了与获取的所述表名对应的同名数据表;如果没有存储对应的所述同名数据表,则所述业务服务器根据获取的所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息,新建所述同名数据表,并根据新建的所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在新建的所述同名数据表中;如果存储有对应的所述同名数据表,则所述业务服务器根据获取的所述字段名、所述字段类型以及唯一性标识信息,对所述同名数据表的所述字段名、所述字段类型以及所述唯一性标识信息进行更新,并根据所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在所述同名数据表中。
7.一种分布式系统,所述分布式系统包括主服务器和至少一个业务服务器,其特征在于,该分布式系统还包括监控单元,用于监控所述主服务器所存储的数据表的数据是否被更新;确定单元,与所述监测单元连接,用于当所述监控单元监控到所述主服务器所存储的数据表的数据被更新时,确定是否需要将被更新的所述数据表的数据同步到对应的业务服务器中;获取单元,与所述确定单元连接,用于当所述确定单元确定需要将被更新的所述数据表的数据同步到对应的所述业务服务器时,获取被更新的所述数据表的配置信息以及对应的所述业务服务器的地址信息;通知单元,与所述获取单元连接,用于根据获取的所述配置信息生成同步通知报文,并将生成的所述通知报文通过获取的所述地址信息发送给对应的所述业务服务器;所述业务服务器根据接收的所述同步通知报文中的配置信息,对被更新的所述数据表的数据进行同步。
8.如权利要求7所述的系统,其特征在于,所述系统还包括业务列表存储单元,与所述确定单元连接,用于存储预先维护的业务列表;其中,所述业务列表记录了需要同步到所述业务服务器的数据表的表名以及该表名对应的业务标识;所述确定单元具体用于,判断被更新的所述数据表的表名是否记录在所述业务列表中,若被更新的所述数据表的所述表名记录在所述业务列表中,则确定需要将被更新的所述数据表的数据同步到对应的所述业务服务器。
9.如权利要求8所述的系统,其特征在于,所述系统还包括业务列表更新单元,当在所述业务服务器中新增所述需要同步的数据表时,用于将所述需要同步的数据表的表名以及该表名对应的业务标识添加到所述业务列表。
10.如权利要求8所述的系统,其特征在于,所述主服务器中存储有系统表以及业务服务地址表;其中,所述系统表至少存储有表名、字段名信息、字段类型信息、唯一性标识信息;该业务服务地址表存储有一个以上的业务标识以及每个该业务标识对应的地址信息。
11.根据权利要求10所述的系统,其特征在于,所述获取单元包括第一获取子单元,用于根据被更新的所述数据表的表名,从所述系统表中获取被更新的数据表的所述配置信息;以及第二获取子单元,用于在所述业务列表中查找被更新的所述数据表的表名对应的所述业务标识,并根据查找到的所述业务标识,从所述业务服务地址表中获取与查找到的所述业务标识对应的所述地址信息。
12.如权利要求11所述的系统,其特征在于,所述通知单元,具体用于根据所述第一获取子单元获取所述表名、所述字段名信息、所述字段类型信息、所述唯一性标识信息生成所述同步通知报文,并根据第二获取单元获取的所述地址信息,将生成的所述同步通知报文发送给所述业务服务器。
13.如权利要求12所述的系统,其特征在于,所述业务服务器还包括同步数据存储单元,用于存储同名数据表;其中,所述同名数据表中的表名与所述主服务器中数据表的表名相同;解析单元,用于接收并解析所述同步通知报文,以获取所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息;同步单元,用于判断同步数据存储单元中是否存储了与获取的所述表名对应的所述同名数据表;如果没有存储对应的所述同名数据表,则所述同步单元根据所述解析单元获取的所述表名、所述字段名信息、所述字段类型信息以及所述唯一性标识信息,在所述同步数据存储单元中新建所述同名数据表,并根据新建的所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在新建的所述同名数据表中;如果存储有对应的所述同名数据表,则所述同步单元根据所述解析单元获取的所述字段名、所述字段类型以及所述唯一性标识信息,对所述同名数据表的所述唯一性标识信息、 所述字段名以及所述字段类型进行更新,并根据所述同名数据表的表名从所述主服务器中读取该被更新的数据表的数据,将读取的所述数据记录在对应的所述同名数据表中。
全文摘要
本发明公开了一种分布式系统及其数据同步方法,其中,该方法包括以下步骤当监控到主服务器所存储的数据表的数据被更新时,确定是否需要将被更新的数据表的数据同步到对应的业务服务器;如果需要将被更新的数据表的数据同步到对应的业务服务器时,则获取被更新的数据表的配置信息以及对应的业务服务器的地址信息;根据获取的配置信息生成同步通知报文,并将生成的同步通知报文通过获取的地址信息发送给业务服务器;业务服务器根据接收的同步通知报文中的配置信息,对被更新的数据表的数据进行同步。本发明中,实现数据表的自动同步,简化开化的复杂度。
文档编号H04L29/08GK102202073SQ20101013140
公开日2011年9月28日 申请日期2010年3月24日 优先权日2010年3月24日
发明者朱海涛, 钟果 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1