CN101291342A - 一种分布式体系中的数据同步方法及系统 - Google Patents

一种分布式体系中的数据同步方法及系统 Download PDF

Info

Publication number
CN101291342A
CN101291342A CNA2008101109595A CN200810110959A CN101291342A CN 101291342 A CN101291342 A CN 101291342A CN A2008101109595 A CNA2008101109595 A CN A2008101109595A CN 200810110959 A CN200810110959 A CN 200810110959A CN 101291342 A CN101291342 A CN 101291342A
Authority
CN
China
Prior art keywords
synchrodata
module
data
syn
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008101109595A
Other languages
English (en)
Inventor
郁聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNA2008101109595A priority Critical patent/CN101291342A/zh
Publication of CN101291342A publication Critical patent/CN101291342A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种分布式体系中的数据同步方法及系统,所述方法包括:源客户端监测到同步数据发生变化后,将同步序列号加一,将该同步序列号、变化后的同步数据及数据操作码封装成异步消息发送给目的客户端,同时将该同步数据的变化记录在同步缓存的一个缓存项中,目的客户端在收到异步消息后向源客户端回复应答消息,消息中包含有接收到的同步序列号,源客户端根据应答消息中携带的同步序列号将本地同步缓存中相应的同步数据删除;所述系统中源客户端包括数据监测模块、异步消息生成模块、消息收发模块、同步缓存模块及同步数据删除模块,目的客户端包括异步消息接收模块和应答模块。本发明大大提高了分布式体系中即时数据同步的可靠性。

Description

一种分布式体系中的数据同步方法及系统
技术领域
本发明涉及计算机网络通信领域,尤其涉及一种分布式体系中的数据同步方法及系统。
背景技术
在分布式体系中多个客户端需要协同进行工作,共同分担系统的工作任务。从硬件构架上来讲,分布式体系中的各个客户端一般都有各自的内存,每个客户端都只能访问自己的内存空间,物理空间上并不存在全局意义上的数据供不同的客户端共享,但是从逻辑层面来说却存在着一些系统数据,如果各个客户端之间的系统数据不一致,将直接导致任务结果不可预期,因此可靠而快速的数据同步机制是分布式体系协同工作的首要条件。
目前分布式体系的数据同步机制中一般都采用效率比较高的异步消息发送方式进行即时数据同步,即在源客户端数据发生变化时,源客户端主动向目的客户端发送异步消息,异步消息中只发送发生了变化的数据,数据同步的延时极短并且开销也比较小。但是该方式中存在着一些问题:虽然即时同步的开销小且时延短,但是源客户端在发送同步数据后无法保证目的客户端一定能收到该同步数据,一旦分布式体系比较繁忙,就有可能造成消息丢失,从而导致数据的不同步,并且随着分布式体系运行时间的延长,不同步的数据会越来越多。
发明内容
本发明提供一种分布式体系中的数据同步方法及系统,使得分布式体系在进行即时数据同步时能够同时兼顾效率及可靠性。
本发明所述技术方案如下:
一种分布式体系中的数据同步方法,包括步骤:
A、源客户端在监测到本地的同步数据发生变化后,将同步序列号加一,将该同步序列号、变化后的同步数据及数据操作码封装成异步消息发送给目的客户端,同时将该同步数据的变化记录在同步缓存的一个缓存项中;
B、目的客户端在收到异步消息后向源客户端回复应答消息,消息中包含有接收到的同步数据的同步序列号;
C、源客户端在收到应答消息后,根据应答消息中携带的同步序列号将本地同步缓存中相应的同步数据删除。
进一步地,本发明所述分布式体系中的数据同步方法还具有如下特征:所述源客户端每间隔预设时长读取一次同步缓存,按照预设策略将同步缓存中缓存项记录的内容封装在一个或若干个异步消息中发送给目的客户端。
进一步地,本发明所述分布式体系中的数据同步方法还具有如下特征:所述步骤A中,源客户端将同步数据的变化记录在同步缓存的一个缓存项中的具体过程为:
a1、源客户端搜索同步缓存中是否存在与待加入同步数据的数据操作码相同的缓存项,若存在,执行步骤a3,否则,执行步骤a2;
a2、源客户端在同步缓存中增加一新缓存项,将变化后的同步数据或其指针、及对应的同步序列号和数据操作码记录在新增的缓存项中;
a3、源客户端判断搜索到的缓存项中记录的是同步数据还是同步数据的指针,若是同步数据,则将该缓存项中的同步数据和同步序列号更新为变化后的同步数据及对应的同步序列号;若是同步数据的指针,则仅将该缓存项中的同步序列号更新为变化后的同步数据对应的同步序列号。
进一步地,本发明所述分布式体系中的数据同步方法还具有如下特征:所述数据操作码是一个或者一组数据,可以唯一确定同步数据的ID。
进一步地,本发明所述分布式体系中的数据同步方法还具有如下特征:所述同步序列号是一个全局唯一的32bit的无符号整型变量。
一种分布式体系中的数据同步系统,包括源客户端和目的客户端;
所述源客户端包括数据监测模块、异步消息生成模块、消息收发模块、同步缓存模块及同步数据删除模块,各个模块的具体作用如下:
数据监测模块,用于监测本地同步数据的变化,在本地同步数据发生变化后将变化后的同步数据及数据操作码发送给异步消息发送模块;
异步消息生成模块,用于在本地同步数据发生变化后,将同步序列号加一,并将该同步序列号、变化后的同步数据及数据操作码封装成异步消息,同时将该同步数据的变化保存在同步缓存模块中;
消息收发模块,用于将异步消息发送给目的客户端,以及接收目的客户端返回的应答消息;
同步缓存模块,用于存储同步数据的变化记录;
同步数据删除模块,用于根据消息收发模块收到的应答消息中携带的同步序列号将本地同步缓存中相应的同步数据删除;
所述目的客户端包括异步消息接收模块和应答模块,其中,
异步消息接收模块,用于接收源客户端发送的异步消息,从中提取出同步数据及对应的同步序列号和数据操作码;
应答模块,用于向源客户端回复应答消息,消息中包含有从异步消息中提取出的同步序列号。
进一步地,本发明所述分布式体系中的数据同步系统还具有如下特征:所述源客户端中进一步包括:
定时模块,用于触发异步消息发送模块每间隔预设时长读取一次同步缓存模块,获取同步缓存模块中全部或部分缓存项记录的内容,将其通过一个或若干个异步消息发送给目的客户端。
与现有技术相比,本发明所述技术方案对分布式体系中传统的即时同步机制进行了改良,本发明中,源客户端在通过异步消息发送即时同步数据时,利用同步缓存对尚未得到接收确认的同步数据进行保存,并且要求目的客户端在收到异步消息后需要向源客户端返回相应的应答消息,源客户端根据该应答消息将同步缓存中相应的同步数据删除,由于采用了消息接收确认机制,从而提高了异步消息通讯的可靠性;
进一步地,本发明中还引入了定时重发机制,源客户端能够定时将同步缓存中缓存项记录的内容封装在异步消息中发送给目的客户端,在不影响分布式体系即时数据同步性能的基础上,以较小的代价极大提高了分布式体系中即时同步的可靠性。
附图说明
图1为本发明所述分布体系中的数据同步方法的流程图;
图2为本发明所述分布式体系中的数据同步系统的结构框图。
具体实施方式
本发明对分布式体系中传统即时同步机制进行了改良,在传统的即时同步机制中加入了消息接收确认机制及定时重发机制,在不影响分布式体系即时数据同步性能的基础上,以较小的代价极大提高了分布式体系中即时同步的可靠性。
下面结合各个附图对本发明的具体实现过程做进一步详细的说明。
请参阅图1,该图为本发明所述分布体系中的数据同步方法的流程图,其主要包括步骤:
步骤10、源客户端对本地的同步数据进行实时监测,当监测到本地的同步数据发生变化时,将同步序列号加一,该同步序列号是一个全局唯一的32bit的无符号整型变量。
步骤11、源客户端将变化后的同步数据、同步序列号及数据操作码封装成异步消息发送给目的客户端,同时将该同步数据的变化记录在同步缓存的一个缓存项中,所述数据操作码是一个或者一组数据,可以唯一确定同步数据的ID。
本步骤中,源客户端将同步数据的变化记录在同步缓存的一个缓存项中的具体过程为:
1)、源客户端搜索同步缓存中是否存在与待加入同步数据的数据操作码相同的缓存项,若存在,执行步骤3),否则,执行步骤2);
2)、源客户端在同步缓存中增加一个新缓存项,将变化后的同步数据以及对应的同步序列号和数据操作码记录在新增的缓存项中,或者将变化后的同步数据的指针以及对应的同步序列号和数据操作码记录在新增的缓存项中;
3)、源客户端判断搜索到的缓存项中记录的是同步数据还是同步数据的指针,若是同步数据,则将该缓存项中的同步数据和同步序列号更新为变化后的同步数据及对应的同步序列号;若是同步数据的指针,则仅将该缓存项中的同步序列号更新为变化后的同步数据对应的同步序列号。
步骤12、目的客户端在收到异步消息后,从中提取出变化后的同步数据、同步序列号及数据操作码,以此更新本地的同步数据记录。
步骤13、目的客户端向源客户端回复应答消息,消息中包含有接收到的同步数据的同步序列号。
步骤14、源客户端在收到应答消息后,从中提取出同步序列号,根据该同步序列号将本地同步缓存中相应的同步数据删除。
为进一步增加分布式体系中数据即时同步的可靠性,本发明中引入了定时重发机制,本发明中预先在源客户端中设置了定时器,源客户端每间隔预设时长读取一次同步缓存,按照预设策略将同步缓存中缓存项记录的内容封装在一个或若干个异步消息中发送给目的客户端。在实际应用中,若同步缓存中全部缓存项记录内容的数据量较小,则可一次将同步缓存中全部缓存项记录的内容封装在一个异步消息中发送给目的客户端,若同步缓存中全部缓存项记录内容的数据量较大,则可将同步缓存中的缓存项拆分为若干部分,将其通过若干个异步消息发送给目的客户端。
相应于本发明上述方法,本发明进而提出了一种分布式体系中的数据同步系统,请参阅图2,该图为本发明所述分布式体系中的数据同步系统的结构框图,该数据同步系统包括源客户端和目的客户端,其中,
所述源客户端包括数据监测模块、异步消息生成模块、消息收发模块、同步缓存模块及同步数据删除模块,各个模块的具体作用如下:
数据监测模块,用于监测本地同步数据的变化,在本地同步数据发生变化后将变化后的同步数据及数据操作码发送给异步消息发送模块;
异步消息生成模块,用于在本地同步数据发生变化后,将同步序列号加一,并将该同步序列号、变化后的同步数据及数据操作码封装成异步消息,同时将该同步数据的变化保存在同步缓存模块中;
消息收发模块,用于将异步消息发送给目的客户端,以及接收目的客户端返回的应答消息;
同步缓存模块,用于存储同步数据的变化记录;
同步数据删除模块,用于根据消息收发模块收到的应答消息中携带的同步序列号将本地同步缓存中相应的同步数据删除;
所述目的客户端包括异步消息接收模块和应答模块,各个模块的具体作用如下:
异步消息接收模块,用于接收源客户端发送的异步消息,从中提取出同步数据及对应的同步序列号和数据操作码;
应答模块,用于向源客户端回复应答消息,消息中包含有从异步消息中提取出的同步序列号。
为增加分布式体系中数据即时同步的可靠性,所述源客户端中进一步包括:
定时模块,用于触发异步消息发送模块每间隔预设时长读取一次同步缓存模块,获取同步缓存模块中全部或部分缓存项记录的内容,将其通过一个或若干个异步消息发送给目的客户端。
本发明所述系统的其他具体工作细节请参阅本发明上述方法中相应内容的描述,这里不再给予过多赘述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (7)

1、一种分布式体系中的数据同步方法,其特征在于,包括步骤:
A、源客户端在监测到本地的同步数据发生变化后,将同步序列号加一,将该同步序列号、变化后的同步数据及数据操作码封装成异步消息发送给目的客户端,同时将该同步数据的变化记录在同步缓存的一个缓存项中;
B、目的客户端在收到异步消息后向源客户端回复应答消息,消息中包含有接收到的同步数据的同步序列号;
C、源客户端在收到应答消息后,根据应答消息中携带的同步序列号将本地同步缓存中相应的同步数据删除。
2、如权利要求1所述的方法,其特征在于,所述源客户端每间隔预设时长读取一次同步缓存,按照预设策略将同步缓存中缓存项记录的内容封装在一个或若干个异步消息中发送给目的客户端。
3、如权利要求1所述的方法,其特征在于,所述步骤A中,源客户端将同步数据的变化记录在同步缓存的一个缓存项中的具体过程为:
a1、源客户端搜索同步缓存中是否存在与待加入同步数据的数据操作码相同的缓存项,若存在,执行步骤a3,否则,执行步骤a2;
a2、源客户端在同步缓存中增加一新缓存项,将变化后的同步数据或其指针、及对应的同步序列号和数据操作码记录在新增的缓存项中;
a3、源客户端判断搜索到的缓存项中记录的是同步数据还是同步数据的指针,若是同步数据,则将该缓存项中的同步数据和同步序列号更新为变化后的同步数据及对应的同步序列号;若是同步数据的指针,则仅将该缓存项中的同步序列号更新为变化后的同步数据对应的同步序列号。
4、如权利要求1所述的方法,其特征在于,所述数据操作码是一个或者一组数据,可以唯一确定同步数据的ID。
5、如权利要求1所述的方法,其特征在于,所述同步序列号是一个全局唯一的32bit的无符号整型变量。
6、一种分布式体系中的数据同步系统,包括源客户端和目的客户端,其特征在于,
所述源客户端包括数据监测模块、异步消息生成模块、消息收发模块、同步缓存模块及同步数据删除模块,其中,
数据监测模块,用于监测本地同步数据的变化在本地同步数据发生变化后将变化后的同步数据及数据操作码发送给异步消息发送模块;
异步消息生成模块,用于在本地同步数据发生变化后,将同步序列号加一,并将该同步序列号、变化后的同步数据及数据操作码封装成异步消息,同时将该同步数据的变化保存在同步缓存模块中;
消息收发模块,用于将异步消息发送给目的客户端,以及接收目的客户端返回的应答消息;
同步缓存模块,用于存储同步数据的变化记录;
同步数据删除模块,用于根据消息收发模块收到的应答消息中携带的同步序列号将本地同步缓存中相应的同步数据删除;
所述目的客户端包括异步消息接收模块和应答模块,其中,
异步消息接收模块,用于接收源客户端发送的异步消息,从中提取出同步数据及对应的同步序列号和数据操作码;
应答模块,用于向源客户端回复应答消息,消息中包含有从异步消息中提取出的同步序列号。
7、如权利要求6所述的系统,其特征在于,所述源客户端中进一步包括:
定时模块,用于触发异步消息发送模块每间隔预设时长读取一次同步缓存模块,获取同步缓存模块中全部或部分缓存项记录的内容,将其通过一个或若干个异步消息发送给目的客户端。
CNA2008101109595A 2008-06-18 2008-06-18 一种分布式体系中的数据同步方法及系统 Pending CN101291342A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101109595A CN101291342A (zh) 2008-06-18 2008-06-18 一种分布式体系中的数据同步方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101109595A CN101291342A (zh) 2008-06-18 2008-06-18 一种分布式体系中的数据同步方法及系统

Publications (1)

Publication Number Publication Date
CN101291342A true CN101291342A (zh) 2008-10-22

Family

ID=40035411

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101109595A Pending CN101291342A (zh) 2008-06-18 2008-06-18 一种分布式体系中的数据同步方法及系统

Country Status (1)

Country Link
CN (1) CN101291342A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101782891A (zh) * 2010-03-26 2010-07-21 中兴通讯股份有限公司 一种分布式系统通信的方法及系统
CN102227720A (zh) * 2008-12-01 2011-10-26 微软公司 在多个设备的范围内支持媒体内容回复功能
CN102811260A (zh) * 2012-08-10 2012-12-05 清华大学 文件云同步系统及方法
WO2013010451A1 (zh) * 2011-07-15 2013-01-24 华为技术有限公司 缓存数据热度值的同步方法、分布缓存方法、装置及系统
CN102984185A (zh) * 2011-09-05 2013-03-20 北京大学 一种分布式、多层级应用系统标识信息的同步方法及系统
CN103997525A (zh) * 2014-05-21 2014-08-20 北京紫光天禾软件系统技术有限公司 一种分布式数据同步方法及系统
CN104580488A (zh) * 2015-01-20 2015-04-29 株洲南车时代电气股份有限公司 一种信息同步方法及系统
US9201691B2 (en) 2012-02-28 2015-12-01 Huawei Technologies Co., Ltd. Method, apparatus and system for coordinating execution of tasks in a computing system having a distributed shared memory
CN106708842A (zh) * 2015-11-12 2017-05-24 阿里巴巴集团控股有限公司 一种应用系统加载数据的方法和数据库、应用系统
CN106790607A (zh) * 2016-12-29 2017-05-31 北京奇虎科技有限公司 发送离线消息的方法及装置
WO2017124938A1 (zh) * 2016-01-18 2017-07-27 阿里巴巴集团控股有限公司 一种数据同步方法、装置及系统
CN109547532A (zh) * 2018-10-25 2019-03-29 交控科技股份有限公司 一种多服务器冗余系统中各服务器间的数据同步方法
CN110502573A (zh) * 2019-07-08 2019-11-26 威富通科技有限公司 一种闸机数据同步方法及服务器
CN112306756A (zh) * 2020-11-16 2021-02-02 天津南大通用数据技术股份有限公司 一种高效实现主副本数据完全一致性的方法
CN113364822A (zh) * 2020-03-05 2021-09-07 北京沃东天骏信息技术有限公司 一种缓存数据更新方法和装置

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102227720B (zh) * 2008-12-01 2013-11-20 微软公司 在多个设备的范围内支持媒体内容回复功能
CN102227720A (zh) * 2008-12-01 2011-10-26 微软公司 在多个设备的范围内支持媒体内容回复功能
CN101782891A (zh) * 2010-03-26 2010-07-21 中兴通讯股份有限公司 一种分布式系统通信的方法及系统
CN101782891B (zh) * 2010-03-26 2013-12-11 中兴通讯股份有限公司 一种分布式系统通信的方法及系统
WO2013010451A1 (zh) * 2011-07-15 2013-01-24 华为技术有限公司 缓存数据热度值的同步方法、分布缓存方法、装置及系统
US9326261B2 (en) 2011-07-15 2016-04-26 Huawei Technologies Co., Ltd. Method and apparatus for synchronizing popularity value of cache data and method, apparatus, and system for distributed caching
CN102984185A (zh) * 2011-09-05 2013-03-20 北京大学 一种分布式、多层级应用系统标识信息的同步方法及系统
CN102984185B (zh) * 2011-09-05 2015-12-16 北京大学 一种分布式、多层级应用系统标识信息的同步方法及系统
US9201691B2 (en) 2012-02-28 2015-12-01 Huawei Technologies Co., Ltd. Method, apparatus and system for coordinating execution of tasks in a computing system having a distributed shared memory
CN102811260A (zh) * 2012-08-10 2012-12-05 清华大学 文件云同步系统及方法
CN103997525B (zh) * 2014-05-21 2017-10-20 北京天禾元创软件股份有限公司 一种分布式数据同步方法及系统
CN103997525A (zh) * 2014-05-21 2014-08-20 北京紫光天禾软件系统技术有限公司 一种分布式数据同步方法及系统
CN104580488A (zh) * 2015-01-20 2015-04-29 株洲南车时代电气股份有限公司 一种信息同步方法及系统
CN104580488B (zh) * 2015-01-20 2018-03-23 株洲南车时代电气股份有限公司 一种信息同步方法及系统
CN106708842A (zh) * 2015-11-12 2017-05-24 阿里巴巴集团控股有限公司 一种应用系统加载数据的方法和数据库、应用系统
CN106708842B (zh) * 2015-11-12 2021-02-09 创新先进技术有限公司 一种应用系统加载数据的方法和数据库、应用系统
WO2017124938A1 (zh) * 2016-01-18 2017-07-27 阿里巴巴集团控股有限公司 一种数据同步方法、装置及系统
US10754873B2 (en) 2016-01-18 2020-08-25 Alibaba Group Holding Limited Data synchronization method, apparatus, and system
US11010404B2 (en) 2016-01-18 2021-05-18 Advanced New Technologies Co., Ltd. Data synchronization method, apparatus, and system
CN106790607A (zh) * 2016-12-29 2017-05-31 北京奇虎科技有限公司 发送离线消息的方法及装置
CN106790607B (zh) * 2016-12-29 2020-11-03 北京奇虎科技有限公司 发送离线消息的方法及装置
CN109547532A (zh) * 2018-10-25 2019-03-29 交控科技股份有限公司 一种多服务器冗余系统中各服务器间的数据同步方法
CN110502573A (zh) * 2019-07-08 2019-11-26 威富通科技有限公司 一种闸机数据同步方法及服务器
CN113364822A (zh) * 2020-03-05 2021-09-07 北京沃东天骏信息技术有限公司 一种缓存数据更新方法和装置
CN112306756A (zh) * 2020-11-16 2021-02-02 天津南大通用数据技术股份有限公司 一种高效实现主副本数据完全一致性的方法

Similar Documents

Publication Publication Date Title
CN101291342A (zh) 一种分布式体系中的数据同步方法及系统
CN102708192B (zh) 一种文档共享的方法及系统、设备
US9246859B2 (en) Peer-to-peer collaboration of publishers in a publish-subscription environment
CN101227379B (zh) 一种实现数据同步的系统和方法
CN107613529B (zh) 消息处理方法以及基站
CN104636477B (zh) 一种信息推送前推送列表的去重方法
CN101355726A (zh) 基于多媒体消息传递服务的数据库同步方法和系统
CN104283926A (zh) 一种数据同步方法、装置及服务器
CN105246054A (zh) 一种适用于android智能手机的消息推送方法
CN111831748A (zh) 数据同步方法、装置及存储介质
CN111277483B (zh) 一种多端消息的同步方法、服务器及可存储介质
CN112905618A (zh) 数据处理方法以及装置
CN113079156A (zh) 一种内外网信息交互系统
CN111641700A (zh) 基于Ceph对象存储元数据的管理及检索的实现方法
US20090280781A1 (en) Method and device for storing and transmitting messages
CN103338160A (zh) 基于缓存队列的轮询业务的优化系统及优化方法
CN114363304B (zh) Rtp视频流存储、播放方法及装置
WO2012139462A1 (zh) 一种实现信令跟踪的方法、装置及系统
CN2929830Y (zh) 一种搜索引擎服务器和搜索系统
CN111935316B (zh) 一种前端设备目录获取方法及装置
CN114201659A (zh) 一种消息轨迹传输查询方法、装置及系统
CN104753969B (zh) 剪贴板内容信息的同步方法及装置
CN106909636B (zh) 一种基于中间件的数据处理方法及系统
CN102082709B (zh) 基于报文截取的内网视频文件监控系统
CN113472469B (zh) 一种数据同步方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20081022