CN113472469B - 一种数据同步方法、装置、设备及存储介质 - Google Patents

一种数据同步方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113472469B
CN113472469B CN202110850056.6A CN202110850056A CN113472469B CN 113472469 B CN113472469 B CN 113472469B CN 202110850056 A CN202110850056 A CN 202110850056A CN 113472469 B CN113472469 B CN 113472469B
Authority
CN
China
Prior art keywords
data
synchronization
server
source server
terminal
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.)
Active
Application number
CN202110850056.6A
Other languages
English (en)
Other versions
CN113472469A (zh
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.)
Xiamen Yealink Network Technology Co Ltd
Original Assignee
Xiamen Yealink Network Technology Co Ltd
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 Xiamen Yealink Network Technology Co Ltd filed Critical Xiamen Yealink Network Technology Co Ltd
Priority to CN202110850056.6A priority Critical patent/CN113472469B/zh
Publication of CN113472469A publication Critical patent/CN113472469A/zh
Application granted granted Critical
Publication of CN113472469B publication Critical patent/CN113472469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

本申请提供一种数据同步方法、装置、设备及存储介质,涉及计算机技术领域。该方法应用于数据同步系统中的目的服务器,该数据同步系统包括该目的服务器、至少一个源服务器以及终端;该方法可包括:接收终端发送的数据获取请求,该数据获取请求中包括该源服务器以及该目的服务器分别对应的初始时间戳;根据该数据获取请求读取终端对应的源服务器向目的服务器同步数据的同步进度;根据同步进度以及该终端切入到该目的服务器的切入时间,确定源服务器上的终端数据是否已完成向目的服务器的同步,得到源服务器的同步结果;根据该源服务器的同步结果,向该终端发送响应数据以及目标时间戳。这样可以使终端中的数据与目标服务器中对应的数据保持一致。

Description

一种数据同步方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据同步方法、装置、设备及存储介质。
背景技术
异地多活一般是指在不同城市建立独立的数据中心,每个数据中心各自承担归属于自己的流量。在某个数据中心发生灾害(如火灾、断网、地震等)时,该数据中心承担的流量会被切换到其他数据中心中的任何一个(目的服务器),这样可以保证这部分流量被正常支撑。
目前,在上述异地多活场景下时,终端通常采用增量同步方式同步目的服务器的数据。具体的,终端可根据其存储的一个偏移量(时间戳),向该目的服务器请求该偏移量之后变更的数据。
然而,其他数据中心向目的服务器同步数据时,经常存在同步延迟的现象,终端若采用现有技术的方法同步目的服务器的数据,会存在跳过其他数据中心延迟未到目的服务器的数据,进而使终端中的数据与目的服务器中对应的数据不一致。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种数据同步方法、装置、设备及存储介质,可以使终端中的数据与目标服务器中对应的数据保持一致。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种数据同步方法,该方法应用于数据同步系统中的目的服务器,所述数据同步系统包括所述目的服务器、至少一个源服务器以及终端,其中,所述源服务器是与所述终端有过数据交互的一种服务器,所述方法包括:
接收所述终端发送的数据获取请求,所述数据获取请求中包括所述源服务器以及所述目的服务器分别对应的初始时间戳;
根据所述数据获取请求读取所述终端对应的源服务器向所述目的服务器同步数据的同步进度;
根据所述同步进度以及所述终端切入到所述目的服务器的切入时间,确定所述源服务器上的所述终端数据是否已完成向所述目的服务器的同步,得到所述源服务器的同步结果;
根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,所述响应数据包括切换期数据,所述切换期数据至少包括:所述终端从所述源服务器切换至所述目的服务器的时段内的同步数据,所述目标时间戳至少包括:所述切换期数据对应的最大时间戳。
可选地,所述终端对应的源服务器向所述目的服务器同步数据的同步进度包括:所述源服务器已同步数据对应的时间戳,其中,所述源服务器已同步数据至少包括所述终端与所述源服务器交互产生的数据;
上述根据所述同步进度以及所述终端切入到所述目的服务器的切入时间,确定所述源服务器是否已完成同步,得到所述源服务器的同步结果,包括:
若所述源服务器已同步数据对应的时间戳大于所述终端切入到所述目的服务器的切入时间,则确定所述源服务器的同步结果为已完成同步。
可选地,所述根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,包括:
若所述源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量大于所述源服务器同步数据的数据量,则根据所述源服务器的优先性,则向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳。
可选地,所述根据所述源服务器的同步结果,向所述目标客户端发送响应数据以及目标时间戳,包括:
若所述源服务器的同步结果为未完成同步,且,所述数据获取请求中待获取的数据量小于或等于所述目的服务器本地产生的与所述终端交互数据的数据量,则根据所述待获取数据量的优先性,向所述终端发送响应数据以及目标时间戳,所述响应数据包括:所述源服务器的同步数据以及所述目的服务器本地产生的数据,所述目标时间戳包括:所述源服务器的同步数据对应的最大时间戳以及所述目的服务器本地产生的数据对应的最大时间戳。
可选地,所述根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,包括:
若所述源服务器的同步结果为未完成同步,则在所述源服务器完成同步后,向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳。
可选地,所述源服务器为多个;所述确定所述源服务器是否已完成同步,得到所述源服务器的同步结果,包括:
按照所述数据获取请求中各所述源服务器对应的初始时间戳顺序,选择出当前可用源服务器,并确定所述当前可用源服务器是否已完成同步,得到所述当前可用源服务器的同步结果。
可选地,所述根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,包括:
若所述当前可用源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量小于或等于所述当前可用源服务器同步数据的数据量,则向所述终端发送响应数据以及目标时间戳,所述响应数据包括:所述当前可用源服务器同步数据,所述目标时间戳包括:所述当前可用源服务器同步数据对应的最大时间戳;
若所述当前可用源服务器的同步结果为未完成同步,则选择出所述当前可用源服务器的下一个源服务器作为新的当前可用服务器,并根据所述新的当前可用服务器对应的同步结果,向所述终端发送响应数据以及目标时间戳。
第二方面,本申请实施例提供了一种数据同步方法,所述方法应用于数据同步系统中的终端,所述数据同步系统包括目的服务器、至少一个源服务器以及所述终端,所述终端上预先存储所述源服务器以及所述目的服务器分别对应的初始时间戳;所述方法包括:
向所述目的服务器发送数据获取请求;
接收所述目的服务器发送的响应数据以及目标时间戳,所述响应数据包括切换期数据,所述切换期数据至少包括:所述终端从所述源服务器切换至所述目的服务器的时段内的同步数据,所述目标时间戳至少包括:所述切换期数据对应的最大时间戳;
将所述源服务器和/或所述目的服务器对应的初始时间戳更新为所述目标时间戳。
第三方面,本申请实施例提供了一种数据同步装置,所述装置用于数据同步系统中的目的服务器,所述数据同步系统包括所述目的服务器、至少一个源服务器以及终端,其中,所述源服务器是与所述终端有过数据交互的一种服务器,所述装置包括:
第一接收模块,用于接收所述终端发送的数据获取请求,所述数据获取请求中包括所述源服务器以及所述目的服务器分别对应的初始时间戳;
读取模块,用于根据所述数据获取请求读取所述终端对应的源服务器向所述目的服务器同步数据的同步进度;
确定模块,用于根据所述同步进度以及所述终端切入到所述目的服务器的切入时间,确定所述源服务器上的所述终端数据是否已完成向所述目的服务器的同步,得到所述源服务器的同步结果;
第一发送模块,用于根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,所述响应数据包括切换期数据,所述切换期数据至少包括:所述终端从所述源服务器切换至所述目的服务器的时段内的同步数据,所述目标时间戳至少包括:所述切换期数据对应的最大时间戳。
可选地,所述终端对应的源服务器向所述目的服务器同步数据的同步进度包括:所述源服务器已同步数据对应的时间戳,其中,所述源服务器已同步数据至少包括所述终端与所述源服务器交互产生的数据;
相应地,所述确定模块,具体用于若所述源服务器已同步数据对应的时间戳大于所述终端切入到所述目的服务器的切入时间,则确定所述源服务器的同步结果为已完成同步。
可选地,所述第一发送模块,具体用于若所述源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量大于所述源服务器同步数据的数据量,则根据所述源服务器的优先性,则向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳。
可选地,所述第一发送模块,还具体用于若所述源服务器的同步结果为未完成同步,且,所述数据获取请求中待获取的数据量小于或等于所述目的服务器本地产生的与所述终端交互数据的数据量,则根据所述待获取数据量的优先性,向所述终端发送响应数据以及目标时间戳,所述响应数据包括:所述源服务器的同步数据以及所述目的服务器本地产生的数据,所述目标时间戳包括:所述源服务器的同步数据对应的最大时间戳以及所述目的服务器本地产生的数据对应的最大时间戳。
可选地,所述第一发送模块,还具体用于若所述源服务器的同步结果为未完成同步,则在所述源服务器完成同步后,向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳。
可选地,所述确定模块,还具体用于按照所述数据获取请求中各所述源服务器对应的初始时间戳顺序,选择出当前可用源服务器,并确定所述当前可用源服务器是否已完成同步,得到所述当前可用源服务器的同步结果。
可选地,所述第一发送模块,还具体用于若所述当前可用源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量小于或等于所述当前可用源服务器同步数据的数据量,则向所述终端发送响应数据以及目标时间戳,所述响应数据包括:所述当前可用源服务器同步数据,所述目标时间戳包括:所述当前可用源服务器同步数据对应的最大时间戳;若所述当前可用源服务器的同步结果为未完成同步,则选择出所述当前可用源服务器的下一个源服务器作为新的当前可用服务器,并根据所述新的当前可用服务器对应的同步结果,向所述终端发送响应数据以及目标时间戳。
第四方面,本申请实施例提供了一种数据同步装置,所述装置应用于数据同步系统中的终端,所述数据同步系统包括所述目的服务器、至少一个源服务器以及所述终端,所述终端上预先存储所述源服务器以及所述目的服务器分别对应的初始时间戳,所述装置包括:
第二发送模块,用于向所述目的服务器发送数据获取请求;
第二接收模块,用于接收所述目的服务器发送的响应数据以及目标时间戳,所述响应数据包括切换期数据,所述切换期数据至少包括:所述终端从所述源服务器切换至所述目的服务器的时段内的同步数据,所述目标时间戳至少包括:所述切换期数据对应的最大时间戳;
更新模块,用于将所述源服务器和/或所述目的服务器对应的初始时间戳更新为所述目标时间戳。
第五方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当所述电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行上述第一方面或第二方面的数据同步方法的步骤。
第六方面,本申请实施例提供了一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面或第二方面的数据同步方法的步骤。
本申请的有益效果是:
本申请实施例提供一种数据同步方法、装置、设备及存储介质,该方法应用于数据同步系统中的目的服务器,该数据同步系统包括该目的服务器、至少一个源服务器以及终端,其中,该源服务器是与该终端有过数据交互的一种服务器,该方法可包括:接收该终端发送的数据获取请求,该数据获取请求中包括该源服务器以及该目的服务器分别对应的初始时间戳;根据该数据获取请求读取该终端对应的源服务器向该目的服务器同步数据的同步进度;根据该同步进度以及该终端切入到该目的服务器的切入时间,确定该源服务器上的终端数据是否已完成向目的服务器的同步,得到该源服务器的同步结果;根据该源服务器的同步结果,向该终端发送响应数据以及目标时间戳,该响应数据包括切换期数据,该切换期数据至少包括:该终端从该源服务器切换至该目的服务器的时段内的同步数据,该目标时间戳至少包括:该切换期数据对应的最大时间戳。
采用本申请实施例提供的数据同步方法,预先在终端上存储源服务器以及目的服务器分别对应的初始时间戳,终端将包含有各服务器初始时间戳的数据获取请求发送给目的服务器,目的服务器根据各服务器初始时间戳(此处主要指的是源服务器)以及切入时间,查询源服务器是否已完成同步;最后可根据源服务器的同步结果,将同步数据中在源服务器的初始时间戳之后的数据发送给终端,终端可根据接收到的数据中对应的最大时间戳更新该源服务器的初始时间戳,得到第二时间戳;目的服务器再以该源服务器第二时间戳为基准,将同步数据中在源服务器第二时间戳之后的数据发送给该终端,该终端可根据接收到的数据中对应的最大时间戳更新该源服务器的第二时间戳,以此类推,直到源服务器的同步数据全部同步给该终端。也就是说,目的服务器向终端同步数据时,分别是以各服务器对应的时间戳为基准,将各服务器对应的时间戳之后的数据同步给终端,这样可以避免数据同步系统中存在同步延迟情况时,终端中的数据与目的服务器中的数据不一致的现象。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种数据同步系统的结构示意图;
图2为本申请实施例提供的一种数据同步方法的流程示意图;
图3为本申请实施例提供的一种目的服务器监测源服务器同步数据进度的示意图;
图4为本申请实施例提供的又一种数据同步方法的流程示意图;
图5为本申请实施例提供的一种数据同步方法的流程示意图;
图6为本申请实施例提供的又一种数据同步方法的流程示意图;
图7为本申请实施例提供的一种数据同步装置的结构示意图;
图8为本申请实施例提供的另一种数据同步装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在对本申请实施例进行详细解释之前,首先对本申请的应用场景予以介绍。该应用场景是一种异地多活场景,异地多活场景是多中心场景中的一种特例,异地多活场景的关键点就是异地、多活,其中异地就是指地理位置上不同的地方,在这些地方分别建立数据中心,各数据中心上至少包括一个服务器,类似于“不要把鸡蛋都放在同一篮子里”;多活就是指不同地理位置上的数据中心都能够提供业务服务。
无论是高可用计算架构,还是高可用存储架构,其本质的设计目的都是为了解决部分服务器故障的场景下或者为用户提供更高服务效率的场景下,如何保证系统能够继续提供服务。以该设计目的为前提,异地多活架构在服务器发生火灾、断网、地震等灾害时可以进行容灾,也可以根据用户所在的地理位置,为用户提供更高效率的业务服务,需要说明的是,本申请不对异地多活架构所应用的具体场景进行限定。异地多活场景也相当于一种数据同步系统,数据同步系统中各数据中心都在运行,一般可按照某个维度设置数据中心和用户之间的归属关系,每个数据中心各自承担归属于自己的流量(用户),当目标用户归属于某个数据中心时,目标用户对应的数据只会在归属的数据中心发生数据变更,并且数据在多数据中心间是多向实时互相同步的。当某个数据中心发生灾害或者目标用户所在区域发生变更时,以目标用户为维度,可将该数据中心所承担的该目标用户这一流量被切换到其他数据中心,进而可以为该目标用户继续提供业务服务,将该目标用户对应的数据,如该目标用户的目标终端上的目标客户端对应的数据都能同步到该目标用户的终端上。需要说明的是,本申请中的数据中心和服务器是同等概念,下述用服务器代替数据中心的描述对本申请所要保护的方案进行解释。
图1为本申请实施例提供的一种数据同步系统的结构示意图,如图1所示,该系统包括至少一个源服务器,如源服务器A、源服务器C,还包括目的服务器B;源服务器A与源服务器C是与终端100有过数据交互的服务器,目的服务器B可以是与终端100有过数据交互的服务器,也可以是一种从来没有与终端100有过数据交互的服务器,本申请不对其进行限定。图1中的服务器为源服务器还是目的服务器是从服务器切换的方向去定义的,终端100被切换之前归属的服务器可称为源服务器,被切换之后归属的服务器可称为目的服务器。
假设目标用户持有的终端100(以用户维度来说)被切换之前归属的服务器为源服务器A,在目标用户进入建设有目的服务器B的地区时,目标用户可被切换至目的服务器B。终端100上安装有至少一种应用软件(如聊天客户端),在目标用户被切换之前,目标用户在终端100上没有登陆该聊天客户端期间内,有其他用户向该聊天客户端发送信息,并且在此期间内,该目标用户被切换至目的服务器B,之后目标用户持有的终端100可与目的服务器B进行数据交互。
需要说明的是,终端100上可存储有数据同步系统包含的各服务器对应的时间戳,或者在已知终端100归属的服务器的基础上,可只在终端100上存储归属的各服务器对应的时间戳,本申请不对其进行限定。以图1场景来说,那么终端100上至少包括源服务器A对应的时间戳(ta)、目的源服务器B对应的时间戳(tb)、源服务器C对应的时间戳(tc),若目的服务器B从来没有与终端100进行过数据交互,那么在目标用户被切换之前,tb在终端100上存储的具体数值为0,ta对应从源服务器A上拉取的最后一条消息对应的时间,tc对应从源服务器C上拉取的最后一条消息对应的时间。
若该目标用户被切换至目的服务器B之后在终端100上登陆该聊天客户端,那么该目的服务器B利用本申请的技术方案可将源服务器A同步过来的数据以及本地产生的数据同步给终端100,这样在源服务器A向目的服务器B同步数据的过程中,即使存在同步延迟的现象,也可将同步数据同步给终端,也就是说,该终端上的数据最终与目的服务器B保持一致。
如下结合附图对本申请提到的数据同步方法进行示例说明。图2为本申请实施例提供的一种数据同步方法的流程示意图,该方法的执行主体为与上述提到的数据同步系统中终端进行数据交互的目的服务器,该终端可以为可移动终端(如手机、平板电脑等),也可以为固定终端(如台式电脑),或者其他形式的终端,本申请不对其进行限定。如图2所示,该方法可以包括:
S201、接收该终端发送的数据获取请求,该数据获取请求中包括源服务器以及目的服务器分别对应的初始时间戳。
其中,目标用户被切换到目的服务器后,登陆某个终端上的目标客户端,如聊天客户端,该终端在响应该登陆操作后,可向目的服务器发送数据获取请求。以上述图1描述的场景来说,目标用户从源服务器A被切换到源服务器B后,终端响应目标用户的登陆操作,进而发送数据获取请求,该数据获取请求中至少包括源服务器A对应的初始时间戳(ta)、目的服务器B对应的初始时间戳(tb)以及源服务器C对应的初始时间戳(tc),也可包括其他服务器对应的时间戳,本申请不对其进行限定。各服务器对应的初始时间戳所代表的含义在上述已解释,此处不再进行说明。该数据获取请求中除了包括各服务器对应的时间戳外,还可包括每次待获取的数据量n。
S202、根据该数据获取请求读取该终端对应的源服务器向该目的服务器同步数据的同步进度。
其中,目的服务器B响应该数据获取请求,并通过其上的数据库同步工具按照预设周期监测源服务器A所属的数据、源服务器C所属的数据分别向目的服务器B同步的同步进度。其中,源服务器A所属的数据用于指示归属于源服务器A各用户对应的终端数据,源服务器C所属的数据用于指示归属于源服务器C各用户对应的终端数据。
在一种可实现的实施例中,目标用户先归属于源服务器C,再归属于源服务器A,然后再归属于目的服务器B,那么若源服务器C在目标用户所持有的终端向目的服务器B发送数据获取请求之前,已经将该目标用户的终端数据完全同步给目的服务器B,那么目的服务器B可不用对源服务器C进行监测。但一般情况下,由于同步数据有积压现象的存在,不能及时同步,目的服务器B会分别对预设时段之前与该终端有过数据交互的源服务器进行同步进度监测。
S203、根据该同步进度以及该终端切入到该目的服务器的切入时间,确定该源服务器上的终端数据是否已完成向目的服务器的同步,得到源服务器的同步结果。
其中,目的服务器B记录有该目标用户所持有的终端从源服务器A切换到目的服务器B的切入时间ta,并且目的服务器B还可以通过其上的数据库同步工具按照预设周期监测源服务器A所属的数据、源服务器C所属的数据分别向目的服务器B同步的同步进度t1、t2,根据切入时间ta分别与同步进度t1、t2之间的关系,可分别得到源服务器A同步该终端数据、源服务器C同步该终端数据的同步结果。
需要说明的是,源服务器A、源服务器C分别向目的服务器B同步的数据会有相应的标识,同步的与该终端相关的每条数据都会被标明是在哪个服务器上创建或者修改的,并且有创建或者修改的时间,例如源服务器A向目的服务器B同步的该终端数据标识中的服务器就为源服务器A。
S204、根据源服务器的同步结果,向该终端发送响应数据以及目标时间戳。
其中,该响应数据包括切换期数据,该切换期数据至少包括:该终端从源服务器切换至该目的服务器的时段内的同步数据,该目标时间戳至少包括:该切换期数据对应的最大时间戳。
此处仅以源服务器A同步数据进行说明,其他源服务器类似。目的服务器B负责计算源服务器A所属的数据的同步进度(t1)是否超过了与该目标用户所持有的终端从源服务器A被切换至目的服务器B的切入时间(ts)。若同步进度(t1)超过了切入时间(ts),则表明源服务器A向目的服务器B已完成同步该终端数据;若同步进度(T1)未超过了切入时间(ts),则表明源服务器A向目的服务器B未完成同步该终端数据。
其中,确定源服务器A是否向目的服务器B完成同步是指源服务器A上的目标用户所持有的某个终端的数据(即目标客户端数据)是否已完成向目的服务器B的同步。
根据预先设置的同步条件以及该数据获取请求中包含的待获取数据量n,目的服务器B查询源服务器A对应的时间戳(ta)之后的同步数据、查询目的服务器B对应的时间戳(tb)之后本地产生的数据,在满足上述条件的目的服务器B存储的数据量达到n条时,可将这n条数据先发送给终端,这n条数据相当于响应数据中的一部分内容,可包括目的服务器B本地生成的数据和/或源服务器A同步过来的数据,源服务器A此时可处于已同步状态或者未同步状态,本申请不对其进行限定。
目的服务器B可根据这n条数据的标识,确定出各服务器对应的最大时间戳。举例来说,若这n条数据中包括源服务器A同步过来的数据、目的服务器B本地生成的数据,那么目的服务器B向终端发送这n条数据的同时,将源服务器A对应的最大时间戳、目的服务器B对应的最大时间戳发送给该终端,该终端可根据最大时间戳对存储的源服务器A对应的时间戳(ta)、目的服务器B对应的时间戳(tb)进行更新,得到各服务器对应的第二时间戳,然后目的服务器B再查询各服务器对应的第二时间戳之后的数据,并将其发送给终端,以此类推,直至源服务器A同步的目标用户的终端数据已完全同步给终端,此时可将终端中存储的源服务器A对应的时间戳更新为切入时间(tS)。
综上所述,本申请提供的数据同步方法中,预先在终端上存储源服务器以及目的服务器分别对应的初始时间戳,终端将包含有各服务器初始时间戳的数据获取请求发送给目的服务器,目的服务器根据各服务器初始时间戳(此处主要指的是源服务器)以及切入时间,查询源服务器上的终端数据是否已完成向目的服务器的同步;最后可根据源服务器的同步结果,将同步数据中在源服务器的初始时间戳之后的数据发送给终端,终端可根据接收到的数据中对应的最大时间戳更新该源服务器的初始时间戳,得到第二时间戳;目的服务器再以该源服务器第二时间戳为基准,将同步数据中在源服务器第二时间戳之后的数据发送给该终端,该终端可根据接收到的数据中对应的最大时间戳更新该源服务器的第二时间戳,以此类推,直到源服务器的同步数据全部同步给该终端。也就是说,目的服务器向该终端同步数据时,分别是以各服务器对应的时间戳为基准,将各服务器对应的时间戳之后的数据同步给该终端,这样可以避免数据同步系统中存在同步延迟情况时,该终端中的数据与目的服务器中的数据不一致的现象。
需要说明的是,下述提到的源服务器A均是以目标用户所持有的某个终端上的目标客户端维度来说的,源服务器A的同步结果指的是源服务器A上的目标用户所持有的某个终端上的目标客户端上的数据(即终端数据)向目的服务器B的同步结果。
可选的,该终端对应的源服务器向该目的服务器同步数据的同步进度包括:该源服务器已同步数据对应的时间戳。
其中,该源服务器已同步数据至少包括该终端与该源服务器交互产生的数据,还可包括其他用户与该源服务器交互产生的数据,此处的同步进度是以时间角度去说的,并且是以该终端对应的源服务器(源服务器A)为维度去定义的。
上述根据该同步进度以及该终端切入到该目的服务器的切入时间,确定该源服务器上的终端数据是否已完成向目的服务器的同步,得到该源服务器的同步结果,包括:若该源服务器已同步数据对应的时间戳大于该终端切入到所述目的服务器的切入时间,则确定该源服务器的同步结果为已完成同步。
图3为本申请实施例提供的一种目的服务器监测源服务器同步数据进度的示意图,如图3所示,示例性的,此处仅以源服务器A向目的服务器B同步目标用户的终端数据进行说明,目的服务器B的数据库同步工具定时可上报源服务器A向目的服务器B同步数据的同步进度t1。此处的同步进度是以时间角度去说的,并且是以源服务器A为维度去定义的,也就是说,目的服务器B的数据库同步工具定时上报源服务器A同步的目标用户对应的终端数据以及同步的其他用户对应的终端数据。从图3可以看出,目的服务器B可将同步的数据进行缓存,并且定时检查该同步进度(t1)是否大于切入时间(ts),可将同步状态,即同步结果进行缓存,并定期对已缓存的同步状态进行更新。具体的,若同步进度(t1)小于切入时间(ts),则证明源服务器A未完成同步,若同步进度(t1)大于切入时间(ts),则证明源服务器A已完成同步。
其中,源服务器A的同步指的确定源服务器A上的某个终端数据是否已完成向目的服务器B的同步,由终端、终端在切换前归属的源服务器A、在切换后归属的目的服务器B三个维度确定该同步结果。
可选地,上述根据源服务器的同步结果,向该终端发送响应数据以及目标时间戳,包括:若该源服务器的同步结果为已完成同步,且,该数据获取请求中待获取的数据量大于该源服务器同步数据的数据量,则根据该源服务器的优先性,则向该目标终端发送响应数据以及目标时间戳,该响应数据至少包括:该源服务器的同步数据,该目标时间戳至少包括:该源服务器的同步数据对应的最大时间戳。
其中,若目的服务器B在接收到终端发送的数据获取请求后,且目的服务器B的数据库同步工具监测到源服务器A已完成同步,那么在一种可实现的实施例中,当该数据获取请求中包含的待获取的数据量(n)大于源服务器A同步数据中在时间戳(ta)之后的数据量,且目的服务器B本地还没有产生与终端交互的数据,可在以源服务器A为优先的同步条件下,将在时间戳(ta)之后,源服务器A的同步数据以及该同步数据中对应的最大时间戳发送给该终端。在另一种可实现的实施例中,可在以数据获取请求中待获取的数据量为优先的同步条件下,在目的服务器B存储的数据量达到n条后,且这n条数据为时间戳(ta、tb)之后的数据,将源服务器A的同步数据以及该同步数据中对应的最大时间戳、目的服务器B本地产生的数据以及该数据中对应的时间戳分别发送给该终端,该终端将存储的源服务器A、目的服务器B分别将应的时间戳(ta、tb)更新为目的服务器B发送的最大时间戳。
可选地,上述根据源服务器的同步结果,向该终端发送响应数据以及目标时间戳,包括:若该源服务器的同步结果为未完成同步,且,该数据获取请求中待获取的数据量小于或等于源服务器本地产生的与该终端交互的数据量,则根据该待获取数据量的优先性,向该终端发送响应数据以及目标时间戳,该响应数据包括:该源服务器的同步数据以及该目的服务器本地产生的数据,该目标时间戳包括:该源服务器的同步数据对应的最大时间戳以及该目的服务器本地产生的数据对应的最大时间戳。
其中,若目的服务器B在接收到终端发送的数据获取请求后,且目的服务器B的数据库同步工具监测到源服务器A为未完成同步,那么在一种可实现的实施例中,目的服务器B查询到本地产生的数据在时间戳(tb)之后的数据量不小于该数据获取请求中待获取的数据量,可在以该待获取的数据量(n)为优先的条件下,将在时间戳(tb)之后,目的服务器B本地的数据以及对应的最大时间戳发送给该终端,该终端将存储的时间戳(tb)更新为目的服务器B发送的最大时间戳。在另一种可实现的实施例中,可在以源服务器A为优先的同步条件下,若以时间戳(ta)为基准,目的服务器B查询到源服务器A目前同步数据的数据量小于该待获取数据量(n),可仅将在时间戳(ta)之后,源服务器A当前的同步数据以及该同步数据中对应的最大时间戳发送给该终端,或者还可以与目的服务器B本地生成的在时间戳(tb)之后的数据合并,将合并后的数据以及源服务器A、目的服务器B分别对应的最大时间戳发送给该终端,该终端将存储的源服务器A、目的服务器B分别将应的时间戳(ta、tb)更新为目的服务器B发送的源服务器A、目的服务器B分别对应的最大时间戳。
可选地,上述根据该源服务器的同步结果,向该终端发送响应数据以及目标时间戳,包括:若该源服务器的同步结果为未完成同步,则在该源服务器完成同步后,向该终端发送响应数据以及目标时间戳,该响应数据至少包括:该源服务器的同步数据,该目标时间戳至少包括:该源服务器的同步数据对应的最大时间戳。
其中,若目的服务器B在接收到终端发送的数据获取请求后,且目的服务器B的数据库同步工具监测到源服务器A为未完成同步,那么在一种可实现的实施例中,以时间戳(tb)为基准,目的服务器B查询到本地产生的数据量小于该数据获取请求中待获取的数据量(n),目的服务器B也只会将本地产生的数据以及对应的最大时间戳发送给该终端,该终端将存储的时间戳(tb)更新为目的服务器B发送的最大时间戳。该终端在接收到的数据量达不到待获取的数据量(n)时,该终端会停止从目的服务器B上拉取数据,目的服务器B在监测到源服务器A同步完成时,可将同步完成信息发送给源服务器A,源服务器A基于该信息向目的服务器B发送更新后的数据获取请求,在一种可实现的实施例中,目的服务器B以时间戳(ta)为基准,查询源服务器A的同步数据中时间戳在ta之后的数据,将这些数据以及这些数据中最大的时间戳发送给终端,该终端将存储的源服务器A(ta)更新为目的服务器B发送的最大时间戳。
目的服务器在源服务器的同步结果为已完成同步的情况下,才将源服务器的同步数据发送给终端,这样可以避免目的服务器对源服务器进行多次查询的操作,可以提高目的服务器进行同步查询效率,提高目的服务器的性能。
可选地,源服务器为多个,上述确定该源服务器是否已完成同步,得到源服务器同步结果,包括:按照该数据获取请求中各源服务器对应的初始时间戳顺序,选择出当前可用源服务器,并确定当前可用源服务器是否已完成同步,得到当前可用源服务器的同步结果。
其中,目的服务器B会根据源服务器A对应的初始时间戳(ta)、源服务器C对应的初始时间戳(tc)从小到大的顺序,选择出当前可用源服务器。举例来说,若tc小于ta,则代表着目标用户先归属于源服务器C,再归属于源服务器A,也就是说,当前可用源服务器为源服务器C,目的服务器B根据源服务器C的同步进度(t2)以及目标用户从源服务器A切换到目的服务器B的切入时间(ts),可确定源服务器C当前的同步结果。在源服务器C为已完成同步时,可向终端发送响应数据,若源服务器C为未完成同步时,则确定源服务器A的同步结果。
按照各源服务器对应的初始时间戳顺序,依次对各源服务器的同步结果进行判断,这样可以将最早产生的消息发送给终端,避免该终端同步到的数据是混乱无序的现象。
图4为本申请实施例提供的又一种数据同步方法的流程示意图。可选地,如图4所示,上述根据该源服务器的同步结果,向该终端发送响应数据以及目标时间戳,包括:
S401、若该当前可用源服务器的同步结果为已完成同步,且,该数据获取请求中待获取的数据量小于或等于该当前可用源服务器同步数据的数据量,则向该终端发送响应数据以及目标时间戳。
其中,该响应数据包括该当前可用源服务器同步数据,该目标时间戳包括:该当前可用源服务器同步数据对应的最大时间戳。
继续上述举例来说,若目的服务器B监测到源服务器C的同步状态为已完成同步,且目的源服务器B在以时间戳(tc)为基准,查询到的同步数据的数量大于该待获取的数据量,则目的服务器B可以从时间戳(tc=C)为开始时间,在同步数据中提取出n条数据,将这n条数据以及这n条数据中的最大时间戳发送给终端,该终端根据该最大时间戳对存储的时间戳(tc)进行更新。
S402、若该当前可用源服务器的同步结果为未完成同步,则选择出该当前可用源服务器的下一个源服务器作为新的当前可用服务器,并根据新的当前可用服务器对应的同步结果,向该终端发送响应数据以及目标时间戳。
其中,若目的服务器B监测到的源服务器C的同步状态为未完成同步,则目的服务器B继续获取下一个源服务器的同步状态,若此时源服务器A的同步状态为已完成状态,则在一种可实现的实施例中,目的服务器B在以时间戳(ta)为基准,查询到的源服务器A同步数据的数量大于该数据获取请求所请求的数据量,则目的服务器B可以以时间戳(ta=A)为开始时间,在同步数据中提取出n条数据,将这n条数据以及这n条数据中的最大时间戳发送给终端,该终端根据该最大时间戳对存储的时间戳(ta)进行更新。在另一种可实现的实施例中,目的服务器B在以时间戳(ta)为基准,查询到的源服务器A同步数据的数量(r)小于该数据获取请求所请求的数据量,那么目的服务器B可以以时间戳(tb=B)为开始时间,在本地生成的数据中提取出(n-r)条数据,目的服务器B将这n条数据以及这n条数据中的源服务器A对应的最大时间戳、目的服务器B对应的最大时间戳发送给终端,该终端根据各服务器的最大时间戳对存储的时间戳(ta、tb)进行更新。
可以看出,上述目的服务器向终端同步数据的方式可称为增量同步。可选地,目的服务器在接收该终端发送的数据获取请求后,该方法还可以包括:根据该数据获取请求中包括的各源服务器以及目的服务器分别对应的初始时间戳判断是否进行全量同步。具体的,比较源服务器A的时间戳(ta)、目的服务器B的时间戳(tb)以及源服务器C的时间戳(tc),确定出最大的时间戳,若最大的时间戳为ta,判断ta是否满足预设要求,若满足该预设要求,则将标记flag设置为全量标记,一般为1。其中,ta满足预设要求,代表着是该终端上的客户端长时间没有进行数据同步,或者说该终端上新安装目标客户端。目的服务器B将该标记(flag=1)发送给终端,并且目的服务器B会先以ta为基准,查询源服务器A同步数据,在源服务器A同步数据达到n条后,可将这n条数据以及该数据中最大时间戳发送给终端,该终端可根据该标记将本地的数据进行清除,并保存源服务器A的同步数据,以及将源服务器A的时间戳(ta)更新为最大时间戳,之后该终端通常会以上述描述的增量同步进行数据同步,其他内容与上述描述类似,此处不再进行解释。
图5为本申请实施例提供的一种数据同步方法的流程示意图,该方法的执行主体为与上述提到的数据同步系统中目的服务器进行数据交互的终端,该终端可以为可移动终端(如手机、平板电脑等),也可以为固定终端(如台式电脑),或者其他形式的终端,本申请不对其进行限定。如图5所示,该方法可以包括:
S501、向目的服务器发送数据获取请求。
其中,终端在响应登录客户端的操作后,可向目的服务器B发送数据获取请求,该数据获取请求中可包括各源服务器对应的初始时间戳、目的服务器对应的初始时间戳以及待获取的数据量(n)。
S502、接收该目的服务器发送的响应数据以及目标时间戳。
其中,该响应数据包括切换期数据,该切换期数据至少包括:该终端从该源服务器切换至该目的服务器的时段内的同步数据,该目标时间戳至少包括:该切换期数据对应的最大时间戳。
源服务器A可通过多次拉取操作才能将各源服务器的同步数据获取到,每次目的服务器B向源服务器A发送的内容中都包括响应数据以及该响应数据中各服务器的数据对应的最大时间戳,其中,各服务器可只包括源服务器,也可只包括目的服务器,但从整体来看,目的服务器B向源服务器A发送的响应数据中肯定包括终端从源服务器A切换至目的服务器B的时段内的同步数据。
S503、将该源服务器和/或目的服务器对应的初始时间戳更新为该目标时间戳。
其中,终端将源服务器A中的各服务器对应的时间戳根据接收到的内容进行更新。在目的服务器将各源服务器的同步数据都同步给源服务器A后,可将各源服务器对应的时间戳为切入时间(ts)的信息发送给终端,该终端基于该信息将各源服务器的时间戳更新为(ts)之后,该终端只会拉取目的服务器B本地产生的数据,其他内容可参考上述描述。
图6为本申请实施例提供的又一种数据同步方法的流程示意图。如图6所示,该方法包括:
S601、终端向目的服务器发送数据获取请求。
S602、目的服务器接收该终端发送的数据获取请求,该数据获取请求中包括源服务器以及目的服务器分别对应的初始时间戳。
S603、目的服务器根据该数据获取请求读取终端对应的源服务器向目的服务器同步数据的同步进度。
S604、目的服务器根据该同步进度以及终端切入到目的服务器的切入时间,确定源服务器是否已完成同步,得到源服务器的同步结果。
S605、目的服务器根据源服务器的同步结果,向终端发送响应数据以及目标时间戳。
S606、终端接收目的服务器发送的响应数据以及目标时间戳。
S607、终端将源服务器和/或目的服务器对应的初始时间戳更新为目标时间戳。
对于该方法的具体有关内容可参见前述方法实施例的相关部分,本申请在此不再赘述。
图7为本申请实施例提供的一种数据同步装置的结构示意图,该装置基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容。如图7所示,该装置可以包括:
第一接收模块701,用于接收该终端发送的数据获取请求,该数据获取请求中包括源服务器以及目的服务器分别对应的初始时间戳;
读取模块702,用于根据该数据获取请求读取该终端对应的源服务器向该目的服务器同步数据的同步进度;
确定模块703,用于根据该同步进度以及该终端切入到该目的服务器的切入时间,确定该源服务器上的终端数据是否已完成向目的服务器的同步,得到源服务器的同步结果;
第一发送模块704,用于根据源服务器的同步结果,向该终端发送响应数据以及目标时间戳。
可选地,该终端对应的源服务器向目的服务器同步数据的同步进度包括:源服务器已同步数据对应的时间戳,其中,该源服务器已同步数据至少包括终端与源服务器交互产生的数据;
相应地,确定模块703,具体用于若源服务器已同步数据对应的时间戳大于终端切入到目的服务器的切入时间,则确定源服务器的同步结果为已完成同步。
可选地,第一发送模块704,具体用于若源服务器的同步结果为已完成同步,且,数据获取请求中待获取的数据量大于源服务器同步数据的数据量,则根据源服务器的优先性,则向终端发送响应数据以及目标时间戳,响应数据至少包括:源服务器的同步数据,目标时间戳至少包括:源服务器的同步数据对应的最大时间戳。
可选地,第一发送模块704,还具体用于若源服务器的同步结果为未完成同步,且,数据获取请求中待获取的数据量小于或等于目的服务器本地产生的与终端交互数据的数据量,则根据待获取数据量的优先性,向终端发送响应数据以及目标时间戳,响应数据包括:源服务器的同步数据以及目的服务器本地产生的数据,目标时间戳包括:源服务器的同步数据对应的最大时间戳以及目的服务器本地产生的数据对应的最大时间戳。
可选地,第一发送模块704,还具体用于若源服务器的同步结果为未完成同步,则在源服务器完成同步后,向终端发送响应数据以及目标时间戳,响应数据至少包括:源服务器的同步数据,目标时间戳至少包括:源服务器的同步数据对应的最大时间戳。
可选地,确定模块703,还具体用于按照数据获取请求中各源服务器对应的初始时间戳顺序,选择出当前可用源服务器,并确定当前可用源服务器是否已完成同步,得到当前可用源服务器的同步结果。
可选地,第一发送模块704,还具体用于若当前可用源服务器的同步结果为已完成同步,且,数据获取请求中待获取的数据量小于或等于当前可用源服务器同步数据的数据量,则向终端发送响应数据以及目标时间戳,响应数据包括:当前可用源服务器同步数据,目标时间戳包括:当前可用源服务器同步数据对应的最大时间戳;若当前可用源服务器的同步结果为未完成同步,则选择出当前可用源服务器的下一个源服务器作为新的当前可用服务器,并根据新的当前可用服务器对应的同步结果,向终端发送响应数据以及目标时间戳。
图8为本申请实施例提供的另一种数据同步装置的结构示意图,该装置基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容。如图8所示,该装置可以包括:
第二发送模块801,用于向目的服务器发送数据获取请求;
第二接收模块802,用于接接收目的服务器发送的响应数据以及目标时间戳;
更新模块803,用于将源服务器和/或目的服务器对应的初始时间戳更新为该目标时间戳。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Signal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图9为本申请实施例提供的一种电子设备的结构示意图,该电子设备可以为目的服务器,也可以为终端。若该电子设备为目的服务器时,可以执行图1-图4方法的步骤;若该电子设备为终端时,可执行图5方法的步骤。如图9所示,该电子设备可以包括:处理器901、存储介质902和总线903,存储介质902存储有处理器901可执行的机器可读指令,当电子设备运行时,处理器901与存储介质902之间通过总线903通信,处理器901执行机器可读指令,以执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (7)

1.一种数据同步方法,其特征在于,所述方法应用于数据同步系统中的目的服务器,所述数据同步系统包括所述目的服务器、至少一个源服务器以及终端,其中,所述源服务器是与所述终端有过数据交互的一种服务器,所述方法包括:
接收所述终端发送的数据获取请求,所述数据获取请求中包括所述源服务器以及所述目的服务器分别对应的初始时间戳;
根据所述数据获取请求读取所述终端对应的源服务器向所述目的服务器同步数据的同步进度;
根据所述同步进度以及所述终端切入到所述目的服务器的切入时间,确定所述源服务器上的所述终端数据是否已完成向所述目的服务器的同步,得到所述源服务器的同步结果;
根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,所述响应数据包括切换期数据,所述切换期数据至少包括:所述终端从所述源服务器切换至所述目的服务器的时段内的同步数据,所述目标时间戳至少包括:所述切换期数据对应的最大时间戳;
所述根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,包括:
若所述源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量大于所述源服务器同步数据的数据量,则根据所述源服务器的优先性,向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳;
若所述源服务器的同步结果为未完成同步,且,所述数据获取请求中待获取数据量小于或等于所述目的服务器本地产生的与所述终端交互数据的数据量,则根据所述待获取数据量的优先性,向所述终端发送响应数据以及目标时间戳,所述响应数据包括:所述源服务器的同步数据以及所述目的服务器本地产生的数据,所述目标时间戳包括:所述源服务器的同步数据对应的最大时间戳以及所述目的服务器本地产生的数据对应的最大时间戳;
若所述源服务器的同步结果为未完成同步,则在所述源服务器完成同步后,向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳。
2.根据权利要求1所述的方法,其特征在于,所述终端对应的源服务器向所述目的服务器同步数据的同步进度包括:所述源服务器已同步数据对应的时间戳,其中,所述源服务器已同步数据至少包括所述终端与所述源服务器交互产生的数据;
根据所述同步进度以及所述终端切入到所述目的服务器的切入时间,确定所述源服务器上的所述终端数据是否已完成向所述目的服务器的同步,得到所述源服务器的同步结果,包括:
若所述源服务器已同步数据对应的时间戳大于所述终端切入到所述目的服务器的切入时间,则确定所述源服务器的同步结果为已完成同步。
3.根据权利要求1所述的方法,其特征在于,所述源服务器为多个;
所述确定所述源服务器是否已完成同步,得到所述源服务器的同步结果,包括:
按照所述数据获取请求中各所述源服务器对应的初始时间戳顺序,选择出当前可用源服务器,并确定所述当前可用源服务器是否已完成同步,得到所述当前可用源服务器的同步结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,包括:
若所述当前可用源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量小于或等于所述当前可用源服务器同步数据的数据量,则向所述终端发送响应数据以及目标时间戳,所述响应数据包括:所述当前可用源服务器同步数据,所述目标时间戳包括:所述当前可用源服务器同步数据对应的最大时间戳;
若所述当前可用源服务器的同步结果为未完成同步,则选择出所述当前可用源服务器的下一个源服务器作为新的当前可用服务器,并根据所述新的当前可用服务器对应的同步结果,向所述终端发送响应数据以及目标时间戳。
5.一种数据同步方法,其特征在于,所述方法应用于数据同步系统中的终端,所述数据同步系统包括目的服务器、至少一个源服务器以及所述终端,所述终端上预先存储所述源服务器以及所述目的服务器分别对应的初始时间戳;所述方法包括:
向所述目的服务器发送数据获取请求;
接收所述目的服务器发送的响应数据以及目标时间戳,所述响应数据包括切换期数据,所述切换期数据至少包括:所述终端从所述源服务器切换至所述目的服务器的时段内的同步数据,所述目标时间戳至少包括:所述切换期数据对应的最大时间戳;
将所述源服务器和/或所述目的服务器对应的初始时间戳更新为所述目标时间戳;
接收所述目的服务器发送的响应数据以及目标时间戳,包括:
若所述源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量大于所述源服务器同步数据的数据量,则接收所述目的服务器根据所述源服务器的优先性发送的响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳;
若所述源服务器的同步结果为未完成同步,且,所述数据获取请求中待获取数据量小于或等于所述目的服务器本地产生的与所述终端交互数据的数据量,则接收所述目的服务器根据所述待获取数据量的优先性发送的响应数据以及目标时间戳,所述响应数据包括:所述源服务器的同步数据以及所述目的服务器本地产生的数据,所述目标时间戳包括:所述源服务器的同步数据对应的最大时间戳以及所述目的服务器本地产生的数据对应的最大时间戳;
若所述源服务器的同步结果为未完成同步,则在所述源服务器完成同步后,接收所述目的服务器发送的响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳。
6.一种数据同步装置,其特征在于,所述装置应用于数据同步系统中的目的服务器,所述数据同步系统包括所述目的服务器、至少一个源服务器以及终端,其中,所述源服务器是与所述终端有过数据交互的一种服务器,所述装置包括:
第一接收模块,用于接收所述终端发送的数据获取请求,所述数据获取请求中包括所述源服务器以及所述目的服务器分别对应的初始时间戳;
读取模块,用于根据所述数据获取请求读取所述终端对应的源服务器向所述目的服务器同步数据的同步进度;
确定模块,用于根据所述同步进度以及所述终端切入到所述目的服务器的切入时间,确定所述源服务器上的所述终端数据是否已完成向所述目的服务器的同步,得到所述源服务器的同步结果;
第一发送模块,用于根据所述源服务器的同步结果,向所述终端发送响应数据以及目标时间戳,所述响应数据包括切换期数据,所述切换期数据至少包括:所述终端从所述源服务器切换至所述目的服务器的时段内的同步数据,所述目标时间戳至少包括:所述切换期数据对应的最大时间戳;
第一发送模块,还用于:
若所述源服务器的同步结果为已完成同步,且,所述数据获取请求中待获取的数据量大于所述源服务器同步数据的数据量,则根据所述源服务器的优先性,向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳;
若所述源服务器的同步结果为未完成同步,且,所述数据获取请求中待获取数据量小于或等于所述目的服务器本地产生的与所述终端交互数据的数据量,则根据所述待获取数据量的优先性,向所述终端发送响应数据以及目标时间戳,所述响应数据包括:所述源服务器的同步数据以及所述目的服务器本地产生的数据,所述目标时间戳包括:所述源服务器的同步数据对应的最大时间戳以及所述目的服务器本地产生的数据对应的最大时间戳;
若所述源服务器的同步结果为未完成同步,则在所述源服务器完成同步后,向所述终端发送响应数据以及目标时间戳,所述响应数据至少包括:所述源服务器的同步数据,所述目标时间戳至少包括:所述源服务器的同步数据对应的最大时间戳。
7.一种电子设备,其特征在于,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-5任一项所述的数据同步方法的步骤。
CN202110850056.6A 2021-07-27 2021-07-27 一种数据同步方法、装置、设备及存储介质 Active CN113472469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110850056.6A CN113472469B (zh) 2021-07-27 2021-07-27 一种数据同步方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110850056.6A CN113472469B (zh) 2021-07-27 2021-07-27 一种数据同步方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113472469A CN113472469A (zh) 2021-10-01
CN113472469B true CN113472469B (zh) 2023-12-05

Family

ID=77882746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110850056.6A Active CN113472469B (zh) 2021-07-27 2021-07-27 一种数据同步方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113472469B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867605A (zh) * 2010-05-21 2010-10-20 中兴通讯股份有限公司 提高rss业务同步效率的方法、装置和系统
CN102710665A (zh) * 2012-06-27 2012-10-03 深圳中兴网信科技有限公司 移动终端、服务器和移动终端的数据同步方法
WO2014201982A1 (zh) * 2013-06-20 2014-12-24 华为技术有限公司 数据同步方法、数据同步装置及分布式系统
CN108040108A (zh) * 2017-12-11 2018-05-15 杭州电魂网络科技股份有限公司 通信切换方法、装置、协调服务器及可读存储介质
CN110019520A (zh) * 2017-11-29 2019-07-16 财付通支付科技有限公司 业务执行方法、系统及装置
CN111245548A (zh) * 2020-01-14 2020-06-05 平安国际智慧城市科技股份有限公司 基于时间戳的数据同步方法、装置和计算机设备
CN111314479A (zh) * 2016-06-20 2020-06-19 阿里巴巴集团控股有限公司 一种数据处理方法和设备
WO2020173248A1 (zh) * 2019-02-27 2020-09-03 北京字节跳动网络技术有限公司 数据同步方法、装置、终端及存储介质
CN112003716A (zh) * 2019-12-12 2020-11-27 军事科学院系统工程研究院网络信息研究所 一种数据中心双活实现方法
CN112214547A (zh) * 2020-09-24 2021-01-12 百度国际科技(深圳)有限公司 数据处理方法、数据服务器、电子设备及存储介质
CN112860791A (zh) * 2021-01-26 2021-05-28 北京辰芯智能科技有限公司 一种跨网数据同步控制系统、方法及存储介质
WO2021120969A1 (zh) * 2020-02-21 2021-06-24 聚好看科技股份有限公司 域名解析方法、域名解析服务器及终端设备
CN113037420A (zh) * 2021-05-20 2021-06-25 北京金山云网络技术有限公司 读时间戳的获取方法和装置、电子设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465649B2 (en) * 2013-04-15 2016-10-11 International Business Machines Corporation Executing distributed globally-ordered transactional workloads in replicated state machines
JP6205898B2 (ja) * 2013-06-27 2017-10-04 富士通株式会社 制御方法、制御プログラムおよび情報処理システム

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867605A (zh) * 2010-05-21 2010-10-20 中兴通讯股份有限公司 提高rss业务同步效率的方法、装置和系统
CN102710665A (zh) * 2012-06-27 2012-10-03 深圳中兴网信科技有限公司 移动终端、服务器和移动终端的数据同步方法
WO2014201982A1 (zh) * 2013-06-20 2014-12-24 华为技术有限公司 数据同步方法、数据同步装置及分布式系统
CN111314479A (zh) * 2016-06-20 2020-06-19 阿里巴巴集团控股有限公司 一种数据处理方法和设备
CN110019520A (zh) * 2017-11-29 2019-07-16 财付通支付科技有限公司 业务执行方法、系统及装置
CN108040108A (zh) * 2017-12-11 2018-05-15 杭州电魂网络科技股份有限公司 通信切换方法、装置、协调服务器及可读存储介质
WO2020173248A1 (zh) * 2019-02-27 2020-09-03 北京字节跳动网络技术有限公司 数据同步方法、装置、终端及存储介质
CN112003716A (zh) * 2019-12-12 2020-11-27 军事科学院系统工程研究院网络信息研究所 一种数据中心双活实现方法
CN111245548A (zh) * 2020-01-14 2020-06-05 平安国际智慧城市科技股份有限公司 基于时间戳的数据同步方法、装置和计算机设备
WO2021120969A1 (zh) * 2020-02-21 2021-06-24 聚好看科技股份有限公司 域名解析方法、域名解析服务器及终端设备
CN112214547A (zh) * 2020-09-24 2021-01-12 百度国际科技(深圳)有限公司 数据处理方法、数据服务器、电子设备及存储介质
CN112860791A (zh) * 2021-01-26 2021-05-28 北京辰芯智能科技有限公司 一种跨网数据同步控制系统、方法及存储介质
CN113037420A (zh) * 2021-05-20 2021-06-25 北京金山云网络技术有限公司 读时间戳的获取方法和装置、电子设备和存储介质

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
"Implementing Service Collaboration based on Decentralized Mediation";Xiaoqiang Qiao;《2011 11th International Conference On Quality Software》;全文 *
"Study of synchronization facets for 5G small cell use case scenario";Lakshmi Rajagopal等;《2017 2nd International Conference on Communication and Electronics Systems (ICCES)》;全文 *
"商业银行核心系统异地双活架构研究与实践";张勇;《计算机时代》;全文 *
"多数据中心的远程数据同步机制研究";周冬雪;《中国硕士学位论文全文数据库》;全文 *
"异地多活"分布式存储系统设计和实现;李丹等;《计算机测量与控制》;全文 *
基于"分布式多活"的高校数据中心网络设计研究;江湍;;中国教育信息化(第13期);全文 *
新一代电网调控系统分析决策中心多活数据同步设计与实现;彭晖;吴涛;史浩秋;陈鹏;王玉军;吴炳祥;;电力系统自动化(第16期);全文 *

Also Published As

Publication number Publication date
CN113472469A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
CN110321387B (zh) 数据同步方法、设备及终端设备
WO2021121370A1 (zh) 用于消息队列的消息丢失检测方法和装置
US20070124437A1 (en) Method and system for real-time collection of log data from distributed network components
CN111078504A (zh) 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
US10122665B2 (en) Distributed synchronization data in a message management service
US10891302B2 (en) Scalable synchronization with cache and index management
CN104506643A (zh) 分布式存储系统的服务器及服务器之间的数据同步方法
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
CN113434600B (zh) 一种数据同步方法及装置
CN114048217A (zh) 增量数据的同步方法和装置、电子设备和存储介质
CN111277483A (zh) 一种多端消息的同步方法、服务器及可存储介质
CN112486707A (zh) 基于Redis的消息异步消费方法及装置
CN113259476B (zh) 消息推送方法及系统
CN114625566A (zh) 数据容灾方法、装置、电子设备及存储介质
CN111831954B (zh) 内容数据更新方法、装置、计算机设备及存储介质
CN111884843B (zh) 一种消息处理方法、装置、电子设备及存储介质
CN113472469B (zh) 一种数据同步方法、装置、设备及存储介质
CN114860782B (zh) 数据查询方法、装置、设备及介质
CN111797352A (zh) 封禁帐号的方法、装置及封禁系统
US9852031B2 (en) Computer system and method of identifying a failure
CN112685486B (zh) 数据库集群的数据管理方法、装置、电子设备及存储介质
CN114661823A (zh) 数据同步的方法、装置、电子设备及可读存储介质
CN111106966B (zh) 一种信息处理方法及装置、设备、存储介质
CN113742336A (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
GR01 Patent grant
GR01 Patent grant