CN115982279A - 数据同步方法、装置、***和计算机设备 - Google Patents
数据同步方法、装置、***和计算机设备 Download PDFInfo
- Publication number
- CN115982279A CN115982279A CN202211723739.6A CN202211723739A CN115982279A CN 115982279 A CN115982279 A CN 115982279A CN 202211723739 A CN202211723739 A CN 202211723739A CN 115982279 A CN115982279 A CN 115982279A
- Authority
- CN
- China
- Prior art keywords
- data
- central
- synchronized
- source
- source data
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据同步方法、装置、***和计算机设备。所述方法包括:获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。采用本方法对源数据端无侵入,能够保证数据的安全性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据同步方法、装置、***和计算机设备。
背景技术
随着数字化发展的推进,用户在处理业务过程中可能会需要使用不同的***平台,各个***平台之间独立运营,数据不能共享,对业务的统一管理和运营造成困难。
现有技术中,通常采用直接提供查询接口的方法,实现不同***平台之间的数据同步,中心管理平台可以调用各***平台接口,将***平台数据返回中心管理平台前端进行展示,此种方法需要频繁调用第三方接口,当数据量增多时,访问量增大,对网络及并发要求增高,容易导致访问效率降低,同时,还可能会需要引入第三方插件,或者连接***平台的数据库,对***平台造成一定侵入,难以保证***平台数据的安全性。
因此,目前的数据同步技术中存在难以保证安全性的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够保证安全性的数据同步方法、装置、***、计算机设备和计算机可读存储介质。
第一方面,本申请提供了一种数据同步方法。所述方法包括:
获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;
查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;
在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;
在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
在其中一个实施例中,在查找与所述第一数据标识相匹配的第二数据标识之后,还包括:
在未查找到所述第二数据标识的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
在其中一个实施例中,所述获取源数据端的待同步数据,包括:
获取所述源数据端的源数据的总数据量;
根据所述源数据的总数据量,确定对所述源数据进行分页处理的每页数据量;
根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据。
在其中一个实施例中,所述根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据,包括:
发送数据获取请求至所述源数据端;所述数据获取请求中包含访问令牌;
在所述源数据端对所述访问令牌校验通过的情况下,根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据。
在其中一个实施例中,在发送数据获取请求至所述源数据端之后,还包括:
在所述源数据端对所述访问令牌校验未通过的情况下,进入休眠状态;
在所述休眠状态结束的情况下,获取新的访问令牌,并根据所述新的访问令牌生成新的数据获取请求;
发送所述新的数据获取请求至所述源数据端,以使所述源数据端对所述新的数据获取请求中所述新的访问令牌进行校验。
在其中一个实施例中,所述方法还包括:
根据每页所述待同步数据,对所述中心服务端的所述中心数据进行同步,得到同步后的中心数据;
对所述同步后的中心数据进行标记,得到第三数据标识;
对所述中心服务端缺少所述第三数据标识的中心数据进行删除处理
第二方面,本申请还提供了一种数据同步装置。所述装置包括:
数据获取模块,用于获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;
标识查找模块,用于查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;
时间获取模块,用于在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;
时间比对模块,用于在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
第三方面,本申请还提供了一种数据同步***。所述***包括源数据端和中心服务端;
所述源数据端,用于存储待同步数据,并发送所述待同步数据至所述中心服务端;所述待同步数据与第一数据标识和第一修改时间相对应;
所述中心服务端,用于存储中心数据,并查找与所述第一数据标识相匹配的所述中心数据的第二数据标识,在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间,在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述待同步数据,对所述中心数据进行同步。
在其中一个实施例中,所述中心服务端,还用于从所述源数据端获取访问令牌,并发送包含所述访问令牌的数据量获取请求至所述源数据端;
所述源数据端,还用于对接收到的所述数据量获取请求中的访问令牌进行校验,在校验通过的情况下,发送源数据的总数据量至所述中心服务端;
所述中心服务端,还用于根据接收到的所述源数据的总数据量,对所述源数据进行分页处理。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;
查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;
在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;
在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;
查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;
在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;
在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
上述数据同步方法、装置、***、计算机设备和存储介质,通过获取源数据端的待同步数据,查找与第一数据标识相匹配的第二数据标识,在查找到第二数据标识的情况下,获取第二数据标识所对应的中心数据的第二修改时间,在第二修改时间与第一修改时间不一致的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行同步;可以使中心服务端仅需要从源数据端获取待同步数据,即可直接根据待同步数据进行数据同步,无需在源数据端安装第三方插件,也无需连接源数据端的数据库,对源数据端无侵入,保证其数据的安全性。
而且,通过在数据标识相匹配的情况下,仅对修改时间不一致的中心数据进行同步,还可以提高数据同步的效率。
附图说明
图1为一个实施例中数据同步方法的应用环境图;
图2为一个实施例中数据同步方法的流程示意图;
图3为一个实施例中数据同步方法的时序图;
图4为另一个实施例中数据同步方法的流程示意图;
图5为一个实施例中数据同步装置的结构框图;
图6为一个实施例中数据同步***的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据同步方法,可以应用于如图1所示的应用环境中。其中,中心服务端104通过网络与至少一个源数据端102进行通信。数据存储***可以存储中心服务端104需要处理的数据。数据存储***可以集成在中心服务端104上,也可以放在云上或其他网络服务器上。其中,源数据端102可以为终端或者服务器,各源数据端102分别存储不同的业务平台的数据,源数据端102存储的数据可以称为源数据;中心服务端104也可以为终端或者服务器,用于对各源数据端102存储的不同业务平台的数据进行统一管理和展示。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据同步方法,以该方法应用于图1中的中心服务端104为例进行说明,包括以下步骤:
步骤S201,获取源数据端的待同步数据;待同步数据与第一数据标识和第一修改时间相对应。
其中,待同步数据可以为需要由源数据端同步至中心服务端的数据。
其中,第一数据标识可以为待同步数据的唯一主键。
其中,第一修改时间可以为待同步数据的最后修改时间。
具体实现中,中心服务端可以根据预先设置的每页数据量,从源数据端获取至少一页源数据,将获取到的每一页源数据作为待同步数据。中心服务端还可以针对每一页源数据,获取该页各源数据的唯一主键,将各唯一主键作为该页各源数据的第一数据标识,以及,获取该页各源数据的最后修改时间,将各最后修改时间作为该页各源数据的第一修改时间。中心服务端还可以对待同步数据、第一数据标识和第一修改时间之间的对应关系进行存储。
实际应用中,中心服务端可以定时向源数据端发送访问令牌请求,源数据端对接收到的访问令牌请求进行OAuth2.0(开放授权协议)认证,若认证不通过则终止,否则,若认证通过,则授予中心服务端访问令牌,中心服务端可以携带访问令牌向源数据端发送总数据量获取请求,源数据端对接收到的访问令牌进行校验,若校验不通过则终止,否则,若校验通过,则返回源数据的总数据量,中心服务端根据接收到的总数据量对源数据进行分页,得到每页数据量,并根据每页数据量,从源数据端获取待同步数据。
例如,源数据端的总数据量为205,通过分页确定每页数据量为100,则中心服务端可以第一次、第二次分别从源数据端拉取100个源数据作为待同步数据,第三次从源数据端拉取5个源数据作为待同步数据。在拉取过程中,还可以获取每一个源数据的唯一主键和最后修改时间,将源数据、唯一主键和最后修改时间之间的对应关系存储在中心服务端的数据库中。
步骤S202,查找与第一数据标识相匹配的第二数据标识;第二数据标识与中心服务端的中心数据相对应。
其中,中心数据可以为中心服务端存储的数据。
其中,第二数据标识可以为与待同步数据的唯一主键相同的中心数据的唯一主键。
具体实现中,中心服务端可以存储各中心数据的唯一主键,中心服务端还可以针对各中心数据的唯一主键,判断其是否与待同步数据的唯一主键相匹配,若相匹配,则将该中心数据的唯一主键,确定为第二数据标识。
例如,针对第三次拉取的5个待同步数据:待同步数据a、待同步数据b、待同步数据c、待同步数据d和待同步数据e,唯一主键为别为001、002、003、004、005,中心服务端可以在中心数据的唯一主键中查找是否存在同样的唯一主键。
步骤S203,在查找到第二数据标识的情况下,获取第二数据标识所对应的中心数据的第二修改时间。
其中,第二修改时间可以为与待同步数据的唯一主键相同的中心数据的最后修改时间。
具体实现中,中心服务端可以存储各中心数据的最后修改时间,还可以对中心数据、中心数据的唯一主键和中心数据的最后修改时间之间的对应关系进行存储。在查找到与第一数据标识相匹配的第二数据标识的情况下,可以根据预先存储的中心数据、中心数据的唯一主键和中心数据的最后修改时间之间的对应关系,将与第二数据标识相对应的中心数据的最后修改时间,确定为第二修改时间。
例如,若中心服务端查找到中心数据中存在同样的唯一主键:001、002和004,分别对应中心数据A、中心数据B和中心数据D,则可以获取中心数据A、中心数据B和中心数据D的最后修改时间。
步骤S204,在第二修改时间与第一修改时间不一致的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行同步。
具体实现中,中心服务端可以将第二修改时间与待同步数据的第一修改时间相比较,若第二修改时间与第一修改时间相一致,则无需对中心数据进行修改,否则,若第二修改时间与第一修改时间不一致,则可以根据待同步数据,对中心数据进行同步,具体地,若第二修改时间先于第一修改时间,则可以将中心数据修改为待同步数据。
例如,中心服务端还可以获取待同步数据a、待同步数据b和待同步数据d的最后修改时间,经过比较,若中心数据A的最后修改时间晚于待同步数据a的最后修改时间、中心数据B的最后修改时间等于待同步数据b的最后修改时间、中心数据D的最后修改时间先于待同步数据d的最后修改时间,则待同步数据d相比于中心数据D较新,只需要对中心数据D进行同步,将其修改为待同步数据d。
上述数据同步方法,通过获取源数据端的待同步数据,查找与第一数据标识相匹配的第二数据标识,在查找到第二数据标识的情况下,获取第二数据标识所对应的中心数据的第二修改时间,在第二修改时间与第一修改时间不一致的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行同步;可以使中心服务端仅需要从源数据端获取待同步数据,即可直接根据待同步数据进行数据同步,无需在源数据端安装第三方插件,也无需连接源数据端的数据库,对源数据端无侵入,保证其数据的安全性。
而且,通过在数据标识相匹配的情况下,仅对修改时间不一致的中心数据进行同步,还可以提高数据同步的效率。
在一个实施例中,在上述步骤S202之后,具体还可以包括:在未查找到第二数据标识的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行同步。
具体实现中,在未查找到与第一数据标识相匹配的第二数据标识的情况下,可以将与第一数据标识相对应的源数据端的待同步数据,增加在中心服务端的中心数据中。
例如,中心服务端未在中心数据的唯一主键中查找到003和005,则可以将003对应的待同步数据c和005对应的待同步数据e,作为新增的中心数据,保存在中心服务端的数据库中。
本实施例中,通过在未查找到第二数据标识的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行同步,可以通过比对数据标识,将中心服务端未出现过的数据增加在中心数据中,提高数据同步的效率。
在一个实施例中,上述步骤S201,可以具体包括:获取源数据端的源数据的总数据量;根据源数据的总数据量,确定对源数据进行分页处理的每页数据量;根据每页数据量,从源数据端获取源数据,得到至少一页待同步数据。
其中,每页数据量可以为分页处理的每页中的数据个数。
具体实现中,中心服务端可以向源数据端发送总数据量获取请求,源数据端根据接收到总数据量获取请求,向中心服务端返回源数据的总数据量,中心服务端根据接收到的源数据的总数据量,确定对源数据进行分页处理的每页数据量,并根据每页数据量生成每页数据获取请求,发送至源数据端,源数据端根据接收到的每页数据获取请求,返回一页待同步数据,供中心服务端进行数据同步,之后,中心服务端可以重复发送每页数据获取请求至源数据端,且每次均从源数据端获取一页待同步数据,用于进行数据同步。
本实施例中,通过获取源数据端的源数据的总数据量,根据源数据的总数据量,确定对源数据进行分页处理的每页数据量,根据每页数据量,从源数据端获取源数据,得到至少一页待同步数据,可以对源数据进行分页处理,避免一次传输的数据量较大,造成数据同步出错,从而提高了数据同步的准确率。
在一个实施例中,上述根据每页数据量,从源数据端获取源数据,得到至少一页待同步数据的步骤,可以具体包括:发送数据获取请求至源数据端;数据获取请求中包含访问令牌;在源数据端对访问令牌校验通过的情况下,根据每页数据量,从源数据端获取源数据,得到至少一页待同步数据。
其中,数据获取请求可以为针对每页待同步数据的获取请求。
具体实现中,中心服务端可以根据每页数据量生成数据获取请求,发送至源数据端,数据获取请求中可以包含访问令牌,源数据端在接收到数据获取请求后,可以先对其中的访问令牌进行校验,若校验不通过,则终止,或者更新访问令牌,否则,若校验通过,则可以根据数据获取请求中的每页数据量,从源数据中提取一页待同步数据,返回至中心服务端,供中心服务端进行数据同步。之后,可以重复上述过程,中心服务端重复发送数据获取请求至源数据端,每次均从源数据端获取一页待同步数据,用于进行数据同步。
本实施例中,通过发送数据获取请求至源数据端,在源数据端对访问令牌校验通过的情况下,根据每页数据量,从源数据端获取源数据,得到至少一页待同步数据,可以对源数据进行分页处理,避免一次传输的数据量较大,造成数据同步出错,从而提高了数据同步的准确率。
在一个实施例中,在上述发送数据获取请求至源数据端的步骤之后,具体还可以包括:在源数据端对访问令牌校验未通过的情况下,进入休眠状态;在休眠状态结束的情况下,获取新的访问令牌,并根据新的访问令牌生成新的数据获取请求;发送新的数据获取请求至源数据端,以使源数据端对新的数据获取请求中新的访问令牌进行校验。
具体实现中,中心服务端可以向源数据端发送访问令牌请求,源数据端对接收到的访问令牌请求进行认证,若认证不通过则不授予访问令牌,否则,若认证通过则授予中心服务端访问令牌,该访问令牌具有一定时效,中心服务端可以对接收到的访问令牌进行缓存。中心服务端在将数据获取请求发送至源数据端之后,若源数据端对数据获取请求中的访问令牌校验未通过,则中心服务端可以进入休眠状态,并在休眠状态结束时,重新从源数据端获取新的访问令牌,并对获取到的新的访问令牌进行缓存,例如,中心服务端可以重新向源数据端发送访问令牌请求,并在访问令牌请求认证通过的情况下,接收源数据端返回的新的访问令牌,并进行缓存,该访问令牌同样具有一定时效。之后,中心服务端可以生成新的数据获取请求,其中携带有新的访问令牌,源数据端在接收到新的数据获取请求后,可以对其中携带的新的访问令牌进行校验。
实际应用中,中心服务端将数据获取请求发送至源数据端后,源数据端对访问令牌进行校验,若校验成功,则可以返回数据获取请求成功的消息以及数据获取请求对应的正确数据给中心服务端,使中心服务端获取到待同步数据,之后可以继续执行上述步骤S202-S204;否则,若源数据端对访问令牌校验失败,则可以返回数据获取请求失败的消息以及空数据(或者错误数据)给中心服务端,中心服务端在接收到数据获取请求失败的消息以及空数据(或者错误数据)的情况下,可以休眠一段时间,例如,5-10秒,之后,中心服务端可以重新获取访问令牌,并用重新获取到的访问令牌替换原来缓存的访问令牌,向源数据端发送携带新的访问令牌的数据获取请求。还可以设置访问令牌的最大更新次数,例如,可以设置最大更新次数为3,若访问令牌更新3次,在源数据端仍然未能校验通过,中心服务端仍然接收到数据获取请求失败的消息以及空数据(或者错误数据),则可以判定本次数据同步失败。
本实施例中,通过在源数据端对访问令牌校验未通过的情况下,进入休眠状态,在休眠状态结束的情况下,获取新的访问令牌,并根据新的访问令牌生成新的数据获取请求,发送新的数据获取请求至源数据端,以使源数据端对新的数据获取请求中新的访问令牌进行校验,可以避免访问令牌过期或者源数据端出现偶发的请求不成功导致整个数据同步失败,从而有效提高数据同步的稳定性,以及中心服务端的可靠性。
在一个实施例中,上述数据同步方法,具体还可以包括:根据每页待同步数据,对中心服务端的中心数据进行同步,得到同步后的中心数据;对同步后的中心数据进行标记,得到第三数据标识;对中心服务端缺少第三数据标识的中心数据进行删除处理。
其中,第三数据标识可以为对针对同步后的中心数据所添加的标识。
具体实现中,中心服务端可以根据获取到的每一页待同步数据,对相应的中心数据进行同步,并为同步后的中心数据添加标记,得到第三数据标识,对所有待同步数据进行上述处理后,中心服务端可以查找缺少第三数据标识的中心数据,将其进行删除。
例如,中心服务端有130个中心数据,待同步数据有2页、每页包含100个数据,根据第1页待同步数据对中心数据1-100进行修改,并将这些中心数据标记为M,根据第2页待同步数据新增中心数据101-200,并将这些中心数据标记为A,则还有30个中心数据未进行标记,可以将这些未进行标记的中心数据进行删除。
本实施例中,通过根据每页待同步数据,对中心服务端的中心数据进行同步,得到同步后的中心数据,对同步后的中心数据进行标记,得到第三数据标识,对中心服务端缺少第三数据标识的中心数据进行删除处理,可以保证中心服务端与源数据端之间数据的一致性。
为了便于本领域技术人员深入理解本申请实施例,以下将结合一个具体示例进行说明。
图3提供了一个数据同步方法的时序图。根据图3,数据同步方法可以具体包括以下步骤:
步骤S301,中心服务端在深夜***资源比较充足时,通过定时任务分别请求源数据端授予访问令牌;
步骤S302,源数据端收到中心服务端的请求后,进行OAuth 2.0认证授权,授予中心服务端一个访问令牌,该访问令牌具有一定时效性,中心服务端接收到该访问令牌后,对访问令牌进行缓存,并设置缓存过期时间;
步骤S303,中心服务端通过访问令牌,请求获取源数据端的数据总条数;
步骤S304,源数据端校验访问令牌通过后,返回相应的数据总条数;
步骤S305,中心服务端获取到数据总条数后,按一定的数量进行分页;
步骤S306,按照分页,通过缓存的访问令牌,请求从源数据端获取第一分页的数据;
步骤S307,源数据端返回第一分页的数据;
步骤S308,源数据端和中心服务端的数据都有统一的唯一主键,通过唯一主键查询到本次分页获取的数据在中心服务端已存在的数据,与源数据端获取的数据最后修改时间进行对比,如果最后修改时间相同则不修改,如果最后修改时间不同则将中心服务端该条数据修改为从源数据段获取的最新数据;将本次分页获取到的数据在中心服务端不存在的数据保存到中心服务端的数据库;
步骤S309,在中心服务端的数据中对本次分页获取到的数据全部进行标记;
步骤S310,按照分页获取下一页数据,然后重复上述步骤S306-S309,直到所有分页数据全部处理完成;
步骤S311,所有源数据端数据处理完成后查询中心服务端未标记的数据,未被标记的数据即是源数据端删除的数据,将其删除。
同时,在上述数据同步过程中,每次分页请求源数据端获取数据时,都对是否请求成功、是否返回正确数据进行判断,如果本次分页请求未成功或者未获取到对应的数据,则休眠5到10秒,然后重新获取令牌,替换缓存,然后再次请求该页数据,如此重试三次,如果三次请求还是没有成功或者没有获取到数据,则本次定时同步失败,如此处理可以避免令牌过期或者源数据端出现偶发请求不成功导致整个数据同步失败,有效地提高了数据同步的稳定性,以及中心服务端的可靠性。
而且,在上述数据同步过程中,如果同步失败,则可以给中心服务端的维护人员发送邮件或者企业微信等告警通知,以便维护人员收到告警后及时处理,维护***及数据的正常,提高***运行的可靠性。
此外,中心服务端分页获取源数据端数据时,还可以加入多线程处理机制,通过任务调度,多线程分页获取并处理数据,充分利用中心服务端的***资源,提高数据同步的效率。
进一步地,上述数据同步方法还可以应用在不同应用之间的数据同步,例如,A服务同步B服务数据,B服务通过OAuth 2.0对A服务认证授权,然后A服务分批分页获取B服务对应数据,然后进行更新保存和标记,最后将未标记的数据删除;同时,分页获取及处理数据时,采用多线程处理,在同步过程中加入重试机制,以提高***运行的效率及可靠性。在同步失败是通过发送邮件、短信、微信、企业微信等通知维护工程师及时处理。
通过上述数据同步方法,源数据端只需要对中心服务端进行OAuth 2.0授权,并设置对应资源权限,中心服务端即可获取源数据端对应数据,可以对源数据端无侵入,提高了数据同步的安全性。而且,通过分批分页处理并标记,并在同步结束时删除未标记的数据,可以避免单次传输数据量较大造成的数据不一致,确保数据一致性。此外,加入重试机制,可以避免单次调用失败导致定时任务终止,以及引入失败告警机制,使得维护人员可以及时处理以维护数据正常,提高***运行的稳定性和可靠性。进一步地,在深夜***资源相对充足时定时同步,以及进行多线程处理,可以充分利用***资源,提高数据同步的效率。
在一个实施例中,如图4所示,提供了一种数据同步方法,以该方法应用于图1中的中心服务端104为例进行说明,包括以下步骤:
步骤S301,获取源数据端的源数据的总数据量,根据源数据的总数据量,确定对源数据进行分页处理的每页数据量,根据每页数据量,从源数据端获取源数据,得到至少一页待同步数据;待同步数据与第一数据标识和第一修改时间相对应;
步骤S302,查找与第一数据标识相匹配的第二数据标识;第二数据标识与中心服务端的中心数据相对应;
步骤S303,在查找到第二数据标识的情况下,获取第二数据标识所对应的中心数据的第二修改时间,在第二修改时间与第一修改时间不一致的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行修改;
步骤S304,在未查找到第二数据标识的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行新增。
上述数据同步方法,通过获取源数据端的源数据的总数据量,根据源数据的总数据量,确定对源数据进行分页处理的每页数据量,根据每页数据量,从源数据端获取源数据,得到至少一页待同步数据,查找与第一数据标识相匹配的第二数据标识,在查找到第二数据标识的情况下,获取第二数据标识所对应的中心数据的第二修改时间,在第二修改时间与第一修改时间不一致的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行修改,在未查找到第二数据标识的情况下,根据源数据端的待同步数据,对中心服务端的中心数据进行新增;可以采用分页处理的方式,避免需要同步的数据量较大,导致数据同步可靠性降低,而且,通过根据第二数据标识的不同查找结果,相应地对中心服务端的中心数据采用不同的处理方式,可以实现数据同步过程中所需要的修改和新增等不同的操作,可以有效进行数据同步。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据同步方法的数据同步装置和***。该装置和***所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据同步装置和***实施例中的具体限定可以参见上文中对于数据同步方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种数据同步装置500,包括:数据获取模块501、标识查找模块502、时间获取模块503和时间比对模块504,其中:
数据获取模块501,用于获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;
标识查找模块502,用于查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;
时间获取模块503,用于在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;
时间比对模块504,用于在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
在一个实施例中,上述数据同步装置500,还包括:
数据同步模块,用于在未查找到所述第二数据标识的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
在一个实施例中,上述数据获取模块501,还用于获取所述源数据端的源数据的总数据量;根据所述源数据的总数据量,确定对所述源数据进行分页处理的每页数据量;根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据。
在一个实施例中,上述数据获取模块501,还用于发送数据获取请求至所述源数据端;所述数据获取请求中包含访问令牌;在所述源数据端对所述访问令牌校验通过的情况下,根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据。
在一个实施例中,上述数据获取模块501,还用于在所述源数据端对所述访问令牌校验未通过的情况下,进入休眠状态;在所述休眠状态结束的情况下,获取新的访问令牌,并根据所述新的访问令牌生成新的数据获取请求;发送所述新的数据获取请求至所述源数据端,以使所述源数据端对所述新的数据获取请求中所述新的访问令牌进行校验。
在一个实施例中,上述数据同步装置,还包括:
同步后数据获取模块,用于根据每页所述待同步数据,对所述中心服务端的所述中心数据进行同步,得到同步后的中心数据;
同步后数据标记模块,用于对所述同步后的中心数据进行标记,得到第三数据标识;
同步后数据删除模块,用于对所述中心服务端缺少所述第三数据标识的中心数据进行删除处理。
在一个实施例中,如图6所示,提供了一种数据同步***600,包括:源数据端102和中心服务端104,其中:
所述源数据端102,用于存储待同步数据,并发送所述待同步数据至所述中心服务端;所述待同步数据与第一数据标识和第一修改时间相对应;
所述中心服务端104,用于存储中心数据,并查找与所述第一数据标识相匹配的所述中心数据的第二数据标识,在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间,在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述待同步数据,对所述中心数据进行同步。
在一个实施例中,上述中心服务端104,还用于从所述源数据端获取访问令牌,并发送包含所述访问令牌的数据量获取请求至所述源数据端;
所述源数据端102,还用于对接收到的所述数据量获取请求中的访问令牌进行校验,在校验通过的情况下,发送源数据的总数据量至所述中心服务端;
所述中心服务端104,还用于根据接收到的所述源数据的总数据量,对所述源数据进行分页处理。
上述数据同步装置和***中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据同步数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;
查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;
在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;
在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
2.根据权利要求1所述的方法,其特征在于,在查找与所述第一数据标识相匹配的第二数据标识之后,还包括:
在未查找到所述第二数据标识的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
3.根据权利要求1所述的方法,其特征在于,所述获取源数据端的待同步数据,包括:
获取所述源数据端的源数据的总数据量;
根据所述源数据的总数据量,确定对所述源数据进行分页处理的每页数据量;
根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据,包括:
发送数据获取请求至所述源数据端;所述数据获取请求中包含访问令牌;
在所述源数据端对所述访问令牌校验通过的情况下,根据所述每页数据量,从所述源数据端获取所述源数据,得到至少一页所述待同步数据。
5.根据权利要求4所述的方法,其特征在于,在发送数据获取请求至所述源数据端之后,还包括:
在所述源数据端对所述访问令牌校验未通过的情况下,进入休眠状态;
在所述休眠状态结束的情况下,获取新的访问令牌,并根据所述新的访问令牌生成新的数据获取请求;
发送所述新的数据获取请求至所述源数据端,以使所述源数据端对所述新的数据获取请求中所述新的访问令牌进行校验。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据每页所述待同步数据,对所述中心服务端的所述中心数据进行同步,得到同步后的中心数据;
对所述同步后的中心数据进行标记,得到第三数据标识;
对所述中心服务端缺少所述第三数据标识的中心数据进行删除处理。
7.一种数据同步装置,其特征在于,所述装置包括:
数据获取模块,用于获取源数据端的待同步数据;所述待同步数据与第一数据标识和第一修改时间相对应;
标识查找模块,用于查找与所述第一数据标识相匹配的第二数据标识;所述第二数据标识与中心服务端的中心数据相对应;
时间获取模块,用于在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间;
时间比对模块,用于在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述源数据端的待同步数据,对所述中心服务端的中心数据进行同步。
8.一种数据同步***,其特征在于,所述***包括源数据端和中心服务端;
所述源数据端,用于存储待同步数据,并发送所述待同步数据至所述中心服务端;所述待同步数据与第一数据标识和第一修改时间相对应;
所述中心服务端,用于存储中心数据,并查找与所述第一数据标识相匹配的所述中心数据的第二数据标识,在查找到所述第二数据标识的情况下,获取所述第二数据标识所对应的中心数据的第二修改时间,在所述第二修改时间与所述第一修改时间不一致的情况下,根据所述待同步数据,对所述中心数据进行同步。
9.根据权利要求8所述的***,其特征在于,所述中心服务端,还用于从所述源数据端获取访问令牌,并发送包含所述访问令牌的数据量获取请求至所述源数据端;
所述源数据端,还用于对接收到的所述数据量获取请求中的访问令牌进行校验,在校验通过的情况下,发送源数据的总数据量至所述中心服务端;
所述中心服务端,还用于根据接收到的所述源数据的总数据量,对所述源数据进行分页处理。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211723739.6A CN115982279A (zh) | 2022-12-30 | 2022-12-30 | 数据同步方法、装置、***和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211723739.6A CN115982279A (zh) | 2022-12-30 | 2022-12-30 | 数据同步方法、装置、***和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115982279A true CN115982279A (zh) | 2023-04-18 |
Family
ID=85975670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211723739.6A Pending CN115982279A (zh) | 2022-12-30 | 2022-12-30 | 数据同步方法、装置、***和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115982279A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117708239A (zh) * | 2023-12-14 | 2024-03-15 | 阳光凯讯(北京)科技股份有限公司 | 一种分页同步数据的方法、***及电子设备 |
-
2022
- 2022-12-30 CN CN202211723739.6A patent/CN115982279A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117708239A (zh) * | 2023-12-14 | 2024-03-15 | 阳光凯讯(北京)科技股份有限公司 | 一种分页同步数据的方法、***及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109791591B (zh) | 经由区块链进行身份和凭证保护及核实的方法和*** | |
WO2020093565A1 (zh) | 区块链区块删除方法、装置以及终端设备 | |
CN109522363B (zh) | 基于区块链的云平台同步方法、***、设备及存储介质 | |
EP4207688A1 (en) | Asynchronous bookkeeping method and apparatus for blockchain, medium, and electronic device | |
CN111475519B (zh) | 数据缓存方法及装置 | |
CN111414379A (zh) | 序列号生成方法、装置、设备及计算机可读存储介质 | |
CN110601832A (zh) | 一种数据访问方法及装置 | |
CN115982279A (zh) | 数据同步方法、装置、***和计算机设备 | |
US20240202185A1 (en) | Method and system for pruning blocks from a blockchain | |
CN113656098A (zh) | 配置获取方法及*** | |
CN111367948B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN117010889A (zh) | 数据处理方法、装置及设备、介质、产品 | |
CN114579171A (zh) | 代码处理方法、装置、计算机设备和存储介质 | |
CN113824675B (zh) | 管理登录态的方法和装置 | |
CN115082038A (zh) | ***集成方法、装置及电子设备 | |
CN112181921A (zh) | 数据处理方法及装置 | |
CN111949731A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN112783866A (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN113449035B (zh) | 数据同步方法、装置、计算机设备及可读存储介质 | |
CN114741683A (zh) | 访问信息处理方法、装置、计算机设备、存储介质 | |
CN115242499B (zh) | 网络请求方法、网络请求装置、电子设备、存储介质 | |
CN110889040B (zh) | 用于推送信息的方法和装置 | |
US11917077B2 (en) | Method and system for quantum-resistant hashing scheme | |
CN112084114B (zh) | 用于测试接口的方法和装置 | |
CN117724806A (zh) | 区块链事务处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |