CN109299122A - 一种数据同步方法、设备和计算机可存储介质 - Google Patents
一种数据同步方法、设备和计算机可存储介质 Download PDFInfo
- Publication number
- CN109299122A CN109299122A CN201811125736.6A CN201811125736A CN109299122A CN 109299122 A CN109299122 A CN 109299122A CN 201811125736 A CN201811125736 A CN 201811125736A CN 109299122 A CN109299122 A CN 109299122A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- message
- synchronization message
- information
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步方法、设备和计算机可存储介质。该方法在第一系统执行的步骤,包括:在变更数据信息之后,生成所述数据信息对应的同步消息;将所述同步消息发送到被第二系统监听的消息队列中。该方法在第二系统执行的步骤,包括:监听第一系统侧的消息队列;获取所述消息队列中的同步消息;对获取到的同一数据信息对应的同步消息执行去重处理;从所述第一系统获取去重处理后的所述同步消息对应的数据信息,并执行数据同步操作。本发明的数据同步方式简单易操作,可以有效提高数据同步效率,尤其是在维护海量数据的过程中,针对批量出现的数据信息变更,可以迅速完成数据同步。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据同步方法、设备和计算机可存储介质。
背景技术
数据处理多采用多系统架构,在该多系统架构中包括多个用于执行不同数据处理任务的系统,多个系统之间进行数据同步,依此保证多个系统之间的数据一致性。
目前,在系统的数据发生变更时,该系统就要将该变更后的数据发送到对该数据变更感兴趣的另一系统,而且数据每变更一次,都要发送一次,这种数据同步方式对系统的性能有很高的要求,在数据批量变更的情况下,这种数据同步方式对系统的正常运行形成了负担,而且数据同步的效率很低。
例如:在当前较为热门的微服务架构中涉及业务的垂直拆分,使得同一个数据可能会存在于不同的子系统中,以电商系统的微服务化来说,商品数据在购物车系统,商品元数据系统,订单系统中会同时存在,这样商品数据在各个子系统之间的同步显得尤为重要,然而,现有的数据同步方式在海量商品数据变更的情况下,效率较低,会影响电商系统的运营。
因此,提供一种高效的数据同步方法已经成为本领域亟待解决的问题。
发明内容
本发明的主要目的在于提出一种数据同步方法、设备和计算机可存储介质,旨在解决现有的数据同步方式效率低下的问题。
针对上述技术问题,本发明是通过以下技术方案来解决的:
本发明提供了一种数据同步方法,在第一系统执行的步骤,包括:在变更数据信息之后,生成所述数据信息对应的同步消息;将所述同步消息发送到被第二系统监听的消息队列中;其中,所述第二系统用于获取所述消息队列中的同步消息,对同一数据信息对应的同步消息执行去重处理,并根据去重处理后的同步消息执行数据同步操作。
其中,所述在变更数据信息之后,生成所述数据信息对应的同步消息,包括:在所述同步消息中携带所述数据信息的基本信息,以便所述第二系统根据所述基本信息确定同一数据信息对应的同步消息。
本发明还提供了一种数据同步方法,在第二系统执行的步骤,包括:监听第一系统侧的消息队列;获取所述消息队列中的同步消息;对获取到的同一数据信息对应的同步消息执行去重处理;从所述第一系统获取去重处理后的所述同步消息对应的数据信息,并执行数据同步操作。
其中,在所述同步消息中携带所述数据信息的基本信息;所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:根据获取到的所述同步消息中携带的基本信息,确定预设缓存中是否已经缓存携带相同基本信息的同步消息;如果是,则舍弃获取到的所述同步消息或者使用获取到的所述同步消息替换已经缓存的携带相同基本信息的同步消息;如果否,则缓存获取到的所述同步消息。
其中,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:每隔第一时间段,从所述预设缓存中获取所述第一时间段中缓存的所有同步消息;根据从所述预设缓存中获取的所述第一时间段内缓存的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
其中,所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:在获取所述消息队列中的同步消息之后,将所述同步消息写入Redis缓存的集合Set数据结构中,利用所述Redis缓存的Set数据结构对同一数据信息对应的同步消息执行去重处理。
其中,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:每隔第二时间段,从所述Redis缓存的Set数据结构中,获取所述第二时间段内去重处理后得到的所有同步消息;根据在所述第二时间段内去重处理后得到的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
本发明提供了一种数据同步设备,所述数据同步设备被设置在第一系统侧,所述第一系统侧的数据同步设备包括第一处理器、第一存储器;所述第一处理器用于执行所述第一存储器中存储的数据同步程序,以实现上述在第一系统侧执行的数据同步方法的步骤。
本发明还提供了一种数据同步设备,所述数据同步设备被设置在第二系统侧,所述第二系统侧的数据同步设备包括第二处理器、第二存储器;所述第二处理器用于执行所述第二存储器中存储的数据同步程序,以实现上述在第二系统侧执行的数据同步方法的步骤。
本发明提供了一种计算机可存储介质,所述计算机可存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述在第一系统侧执行的数据同步方法的步骤,和/或实现上述在第二系统侧执行的数据同步方法的步骤。
本发明提出的一种数据同步方法、设备和计算机可存储介质,具有以下有益效果:
在本发明中,第一系统在数据信息发生变更之后,为数据信息对应生成同步消息,并将该同步消息发送到消息队列,第二系统监听该消息队列,及时获取该消息队列中的同步消息,并对获取到的同步消息进行去重处理,避免多个同步消息指向同一数据信息,造成多次从第一系统同步相同的数据信息的问题的发生。本发明的数据同步方式简单易操作,可以有效提高数据同步效率,尤其是在维护海量数据的过程中,针对批量出现的数据信息变更,可以迅速完成数据同步。
附图说明
图1为根据本发明第一实施例的第一系统侧的数据同步方法的流程图;
图2为根据本发明第二实施例的第二系统侧的数据同步方法的流程图;
图3为根据本发明第三实施例的采用第一种去重处理方式的数据同步方法的流程图;
图4为根据本发明第四实施例的采用第二种去重处理方式的数据同步方法的流程图;
图5为根据本发明第四实施例的采用第二种去重处理方式的数据同步方法的示意图;
图6为根据本发明第五实施例的设置在第一系统侧的数据同步设备的结构图;
图7为根据本发明第六实施例的设置在第二系统侧的数据同步设备的结构图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
本实施例提供一种在第一系统执行的数据同步方法。如图1所示,为根据本发明第一实施例的第一系统侧的数据同步方法的流程图。
步骤S110,在变更数据信息之后,生成所述数据信息对应的同步消息。
步骤S120,将所述同步消息发送到被第二系统监听的消息队列中。
数据信息,可以是数据的元数据信息。
变更,包括但不限于:新增、更新和删除。
同步消息,用于通知第二系统该同步消息对应的数据信息已经发生变更,需要从第一系统同步该数据信息,以保证数据一致性。进一步地,同步消息的数据量小于数据信息的数据量,依此可以降低第一系统和第二系统之间交互的数据量。
第二系统,是对第一系统侧发生的数据信息变更感兴趣的系统。
第二系统,用于获取所述消息队列中的同步消息,对同一数据信息对应的同步消息执行去重处理,并根据去重处理后的同步消息进行数据同步。
在本实施例中,第一系统维护用于缓存同步消息的消息队列,在第一系统侧的数据信息发生变更时,生成该数据信息对应的同步消息,并将该同步消息同步到消息队列中,等待第二系统获取该消息队列中的所有同步消息,在第二系统获取该消息队列中的所有同步消息之后,清空该消息队列,以便在消息队列中缓存新的同步消息。
在所述同步消息中可以携带所述数据信息的基本信息,以便所述第二系统根据该基本信息可以确定同一数据信息对应的同步消息。其中,数据信息的基本信息可以是数据信息的唯一编码,这样根据该唯一编码可以确定唯一的数据信息。
在本实施例中,在第一系统侧批量出现数据信息变更时,可以根据每个数据信息对应生成同步消息,并将每个同步消息发送到消息队列中。
在本实施例中,第一系统接收第二系统发送的数据同步请求,在该数据同步请求中携带同步消息或者携带同步消息中的数据信息的基本信息,根据该同步消息或者携带同步消息中的数据信息的基本信息,可以查询并获取到对应的数据信息,该数据信息为变更后的数据信息,将该变更后的数据信息发送给第二系统,以便第二系统根据变更后的数据信息执行数据同步。进一步地,如果数据信息的变更为删除,则变更后的数据信息为预设信息,该预设信息表示该数据信息已经被删除。
在本实施例中,第一系统在数据信息发生变更之后,为数据信息对应生成同步消息,并将该同步消息发送到消息队列,第二系统监听该消息队列,及时获取该消息队列中的同步消息,并对获取到的同步消息进行去重处理,避免多个同步消息指向同一数据信息,造成多次从第一系统同步相同的数据信息的问题的发生。本发明实施例的数据同步方式简单易操作,可以有效提高数据同步效率,尤其是在维护海量数据的过程中,针对批量出现的数据信息变更,可以迅速完成数据同步。
实施例二
本实施例提供一种在第二系统执行的数据同步方法。如图2所示,为根据本发明第二实施例的第二系统侧的数据同步方法的流程图。
步骤S210,监听第一系统侧的消息队列。
通过监听第一系统侧的消息队列,可以确定消息队列中是否存在第一系统缓存的同步消息。
步骤S220,获取所述消息队列中的同步消息。
在监听到第一系统侧的消息队列中缓存有同步消息时,获取该消息队列中缓存的所有同步消息。
在监听到第一系统侧的消息队列中有持续缓存的同步消息时,可以每隔一段时间,获取消息队列在该段时间内缓存的所有同步消息。
第二系统每次从消息队列获取一次同步消息,该消息队列清空一次,以便保证第二系统每次获取的同步消息为新缓存的同步消息。
步骤S230,对获取到的同一数据信息对应的同步消息执行去重处理。
对获取到的同一数据信息对应的同步消息执行去重处理,包括:在同一数据信息对应的多个重复的同步消息中,仅保留一个同步消息,舍弃其余重复的同步消息。进一步地,由于第一系统侧的数据信息会不定时的发生变更,那么消息队列中也会不断出现该数据信息对应的同步消息,在第二系统侧,如果有多个同步消息指向同一个数据信息,那么仅保留一个同步消息即可。
在本实施例中,在所述同步消息中携带所述数据信息的基本信息。该基本信息可以为数据信息的唯一编码,可以确定唯一的数据信息。这样,可以根据多个同步消息携带的基本信息,确定携带相同基本信息的同步消息为重复的同步消息。
步骤S240,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,并执行数据同步操作。
在针对同步消息执行去重处理之后,保留下来的多个同步消息分别对应不同的数据信息,这样可以保证第二系统不会重复多次同步相同的数据信息。
具体的,在对同步消息执行去重处理之后,可以向第一系统发送数据同步请求,在该数据同步请求中携带同步消息或者携带同步消息中的数据信息的基本信息;第一系统根据该数据同步请求,查询并获取该同步消息或者数据信息的基本信息对应的数据信息,其中,该数据信息为变更后的数据信息;第一系统将获取的变更后的数据信息发送给第二系统;第二系统接收该数据信息,执行该数据信息在第二系统的变更。
该变更包括:新增、更新和删除。执行数据同步操作,包括:对获取的去重处理后的所述同步消息对应的数据信息,执行数据信息的新增、更新或者删除操作。
如果数据信息在第一系统侧的变更为新增或者更新,则可以接收到第一系统发送的新增后或者更新后的数据信息,执行该新增后或者更新后的数据信息在第二系统的新增或者更新。如果数据信息在第一系统侧的变更为删除,则可以接收到第一系统发送的与该数据信息对应的预设信息,该预设信息可以表示该数据信息已经被删除,这时根据该预设信息执行对该数据信息在第二系统侧的删除。
在本实施例中,第一系统在数据信息发生变更之后,为数据信息对应生成同步消息,并将该同步消息发送到消息队列,第二系统监听该消息队列,及时获取该消息队列中的同步消息,并对获取到的同步消息进行去重处理,避免多个同步消息指向同一数据信息,造成多次从第一系统同步相同的数据信息的问题的发生。本发明实施例的数据同步方式简单易操作,可以有效提高数据同步效率,尤其是在维护海量数据的过程中,针对批量出现的数据信息变更,可以迅速完成数据同步。
在本实施例中,通过合并单位时间内的同步消息,过滤掉重复的同步消息,以批量的方式一次性将第一系统侧的数据信息同步到第二系统,在提高数据同步效率的同时,也降低了数据提供者的服务器压力。
下面提供两种具体的去重处理方式,但是,本领域技术人员应该知道的是,以下两种去重处理方式仅为了说明本发明,而不用于限制本发明。
实施例三
如图3所示,为根据本发明第三实施例的采用第一种去重处理方式的数据同步方法的流程图。
步骤S310,监听第一系统侧的消息队列。
步骤S320,获取所述消息队列中的同步消息,该同步消息携带数据信息的基本信息。
步骤S330,根据获取到的所述同步消息中携带的基本信息,确定预设缓存中是否已经缓存携带相同基本信息的同步消息;如果是,则执行步骤S340;如果否,则执行步骤S350。
该预设缓存,用于缓存从消息队列中获取的同步消息,并且协助第二系统执行去重处理。进一步地,该预设缓存中缓存的同步消息对应不同的数据信息,也即是说,该预设缓存中不存储重复的同步消息。
在将获取到的同步消息缓存到预设缓存之前,确定获取到的同步消息是否已经存在于该预设缓存之中,如果预设缓存中存在该同步消息,则不再存储重复的同步消息或者使用该获取到的同步消息替换预设缓存中已经缓存的同步消息;如果预设缓存中不存在该同步消息,则直接将获取到的同步消息缓存到预设缓存之中。
进一步地,如果在同步消息中携带数据信息的基本信息,则可以根据同步消息中的基本信息,确定该预设缓存中是否已经存储与该基本信息相同的同步消息,如果预设缓存中存在与该基本信息相同的同步消息,则说明获取到的同步消息已经存在于该预设缓存之中,如预设缓存中不存在与该基本信息相同的同步消息,则说明获取到的同步消息尚未存在于该预设缓存之中。
步骤S340,舍弃获取到的所述同步消息或者使用获取到的所述同步消息替换已经缓存的携带相同基本信息的同步消息。
步骤S350,缓存获取到的所述同步消息。
步骤S360,每隔第一时间段,从所述预设缓存中获取所述第一时间段中缓存的所有同步消息。
该第一时间段可以是经验值或者实验获得的值。每隔第一时间段,从预设缓存中获取最近一个第一时间段中缓存的所有同步消息。
步骤S370,根据从所述预设缓存中获取的所述第一时间段内缓存的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息,并执行数据同步操作。
实施例四
如图4所示,为根据本发明第四实施例的采用第二种去重处理方式的数据同步方法的流程图。
步骤S410,监听第一系统侧的消息队列。
步骤S420,获取所述消息队列中的同步消息。
步骤S430,在获取所述消息队列中的同步消息之后,将所述同步消息写入Redis缓存的Set(集合)数据结构中。
步骤S440,利用所述Redis缓存的Set数据结构对同一数据信息对应的同步消息执行去重处理。
Redis缓存的Set数据结构具有数据不重复缓存的特性,如果同一数据信息变更多次,那么将会生成多个相同的同步消息,通过该Set数据结构可以对多个同步消息去重。
步骤S450,每隔第二时间段,从所述Redis缓存的Set数据结构中,获取所述第二时间段内去重处理后得到的所有同步消息。
该第二时间段可以是经验值或者实验获得的值。每隔第二时间段,从Redis缓存的Set数据结构中获取最近一个第二时间段去重处理后得到的所有同步消息。
在从Set数据结构中获取第二时间段内去重处理后得到的所有同步消息之后,清空该Set数据结构。
步骤S460,根据在所述第二时间段内去重处理后得到的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息,并执行数据同步操作。
下面给出一个较为具体的应用实例,来说明本实施例的采用第二种去重处理方式的数据同步方法。如图5所示,为根据本发明第四实施例的采用第二种去重处理方式的数据同步方法的示意图。
在该应用实例中,以商品元数据系统和购物车系统为例进行说明。商品元数据系统相当于上述的第一系统,购物车系统相当于上述的第二系统。
步骤1,商品元数据系统是商品数据的源头,在商品元数据系统的管理后台可以变更商品数据,同时该商品元数据系统会向消息队列同步一条同步消息。该同步消息的消息结构可以是change_id:商品数据编码。例如:change_id:789。
步骤2,所有关心商品数据的系统都会监听该消息队列。在本应用实例中,购物车系统监听该消息队列,获取该消息队列中的同步消息。如:获取该消息队列中的同步消息change_id:789。
步骤3,购物车系统将获取的同步消息change_id:789写入到Redis缓存的Set数据结构中,具体的命令可以是sadd product_sync_list 789。Set数据结构可以保证缓存的同步消息不重复。
步骤4,购物车系统设置有一个定时任务,每隔第二时间段从Redis缓存的Set数据结构中获取该第二时间段内的所有同步消息,并将Set数据结构清空。具体可以通过Lua脚本来实现该获取和清空操作。Redis缓存可以原子性执行Lua脚本,保证获取和清空是一个原子操作。
步骤5,在从Redis缓存的Set数据结构中获取同步消息之后,向商品元数据系统批量请求每个同步消息对应的商品数据,并将从商品元数据系统获得的商品数据写入购物车系统中。
实施例五
本实施例提供一种设置在第一系统侧的数据同步设备。如图6所示,为根据本发明第五实施例的设置在第一系统侧的数据同步设备的结构图。
在本实施例中,所述设置在第一系统侧的数据同步设备600,包括但不限于:第一处理器610、第一存储器620。
所述第一处理器610用于执行第一存储器620中存储的第一系统侧的数据同步程序,以实现上述的第一系统侧的数据同步方法。
具体而言,所述第一处理器610用于执行第一存储器620中存储的第一系统侧的数据同步程序,以实现以下步骤:在变更数据信息之后,生成所述数据信息对应的同步消息;将所述同步消息发送到被第二系统监听的消息队列中;其中,所述第二系统用于获取所述消息队列中的同步消息,对同一数据信息对应的同步消息执行去重处理,并根据去重处理后的同步消息执行数据同步操作。
可选的,所述在变更数据信息之后,生成所述数据信息对应的同步消息,包括:在所述同步消息中携带所述数据信息的基本信息,以便所述第二系统根据所述基本信息确定同一数据信息对应的同步消息。
实施例六
本实施例提供一种设置在第二系统侧的数据同步设备。如图7所示,为根据本发明第六实施例的设置在第二系统侧的数据同步设备的结构图。
在本实施例中,所述设置在第二系统侧的数据同步设备700,包括但不限于:第二处理器710、第二存储器720。
所述第二处理器710用于执行第二存储器720中存储的第二系统侧的数据同步程序,以实现上述的第二系统侧的数据同步方法。
具体而言,所述第二处理器710用于执行第二存储器720中存储的第二系统侧的数据同步程序,以实现以下步骤:监听第一系统侧的消息队列;获取所述消息队列中的同步消息;对获取到的同一数据信息对应的同步消息执行去重处理;从所述第一系统获取去重处理后的所述同步消息对应的数据信息,并执行数据同步操作。
可选的,在所述同步消息中携带所述数据信息的基本信息;所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:根据获取到的所述同步消息中携带的基本信息,确定预设缓存中是否已经缓存携带相同基本信息的同步消息;如果是,则舍弃获取到的所述同步消息或者使用获取到的所述同步消息替换已经缓存的携带相同基本信息的同步消息;如果否,则缓存获取到的所述同步消息。
可选的,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:每隔第一时间段,从所述预设缓存中获取所述第一时间段中缓存的所有同步消息;根据从所述预设缓存中获取的所述第一时间段内缓存的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
可选的,所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:在获取所述消息队列中的同步消息之后,将所述同步消息写入Redis缓存的集合Set数据结构中,利用所述Redis缓存的Set数据结构对同一数据信息对应的同步消息执行去重处理。
可选的,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:每隔第二时间段,从所述Redis缓存的Set数据结构中,获取所述第二时间段内去重处理后得到的所有同步消息;根据在所述第二时间段内去重处理后得到的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
实施例七
本发明实施例还提供了一种计算机可存储介质。这里的计算机可存储介质存储有一个或者多个程序。其中,计算机可存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当计算机可存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述的第一系统侧执行的数据同步方法的步骤,和/或第二系统侧执行的数据同步方法的步骤。
在一个实施例中,所述处理器用于执行存储器中存储的第一系统侧执行的数据同步程序,以实现以下步骤:在变更数据信息之后,生成所述数据信息对应的同步消息;将所述同步消息发送到被第二系统监听的消息队列中;其中,所述第二系统用于获取所述消息队列中的同步消息,对同一数据信息对应的同步消息执行去重处理,并根据去重处理后的同步消息执行数据同步操作。
可选的,所述在变更数据信息之后,生成所述数据信息对应的同步消息,包括:在所述同步消息中携带所述数据信息的基本信息,以便所述第二系统根据所述基本信息确定同一数据信息对应的同步消息。
在另一实施例中,所述处理器用于执行存储器中存储的第二系统侧执行的数据同步程序,以实现以下步骤:监听第一系统侧的消息队列;获取所述消息队列中的同步消息;对获取到的同一数据信息对应的同步消息执行去重处理;从所述第一系统获取去重处理后的所述同步消息对应的数据信息,并执行数据同步操作。
可选的,在所述同步消息中携带所述数据信息的基本信息;所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:根据获取到的所述同步消息中携带的基本信息,确定预设缓存中是否已经缓存携带相同基本信息的同步消息;如果是,则舍弃获取到的所述同步消息或者使用获取到的所述同步消息替换已经缓存的携带相同基本信息的同步消息;如果否,则缓存获取到的所述同步消息。
可选的,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:每隔第一时间段,从所述预设缓存中获取所述第一时间段中缓存的所有同步消息;根据从所述预设缓存中获取的所述第一时间段内缓存的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
可选的,所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:在获取所述消息队列中的同步消息之后,将所述同步消息写入Redis缓存的集合Set数据结构中,利用所述Redis缓存的Set数据结构对同一数据信息对应的同步消息执行去重处理。
可选的,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:每隔第二时间段,从所述Redis缓存的Set数据结构中,获取所述第二时间段内去重处理后得到的所有同步消息;根据在所述第二时间段内去重处理后得到的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据同步方法,其特征在于,在第一系统执行的步骤,包括:
在变更数据信息之后,生成所述数据信息对应的同步消息;
将所述同步消息发送到被第二系统监听的消息队列中;
其中,所述第二系统用于获取所述消息队列中的同步消息,对同一数据信息对应的同步消息执行去重处理,并根据去重处理后的同步消息执行数据同步操作。
2.根据权利要求1所述的方法,其特征在于,所述在变更数据信息之后,生成所述数据信息对应的同步消息,包括:
在所述同步消息中携带所述数据信息的基本信息,以便所述第二系统根据所述基本信息确定同一数据信息对应的同步消息。
3.一种数据同步方法,其特征在于,在第二系统执行的步骤,包括:
监听第一系统侧的消息队列;
获取所述消息队列中的同步消息;
对获取到的同一数据信息对应的同步消息执行去重处理;
从所述第一系统获取去重处理后的所述同步消息对应的数据信息,并执行数据同步操作。
4.根据权利要求3所述的方法,其特征在于,
在所述同步消息中携带所述数据信息的基本信息;
所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:
根据获取到的所述同步消息中携带的基本信息,确定预设缓存中是否已经缓存携带相同基本信息的同步消息;
如果是,则舍弃获取到的所述同步消息或者使用获取到的所述同步消息替换已经缓存的携带相同基本信息的同步消息;
如果否,则缓存获取到的所述同步消息。
5.根据权利要求4所述的方法,其特征在于,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:
每隔第一时间段,从所述预设缓存中获取所述第一时间段中缓存的所有同步消息;
根据从所述预设缓存中获取的所述第一时间段内缓存的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
6.根据权利要求3所述的方法,其特征在于,所述对获取到的同一数据信息对应的同步消息执行去重处理,包括:
在获取所述消息队列中的同步消息之后,将所述同步消息写入Redis缓存的集合Set数据结构中,利用所述Redis缓存的Set数据结构对同一数据信息对应的同步消息执行去重处理。
7.根据权利要求6所述的方法,其特征在于,从所述第一系统获取去重处理后的所述同步消息对应的数据信息,包括:
每隔第二时间段,从所述Redis缓存的Set数据结构中,获取所述第二时间段内去重处理后得到的所有同步消息;
根据在所述第二时间段内去重处理后得到的所有同步消息,从所述第一系统批量获取每个所述同步消息对应的数据信息。
8.一种数据同步设备,其特征在于,所述数据同步设备被设置在第一系统侧,所述第一系统侧的数据同步设备包括第一处理器、第一存储器;所述第一处理器用于执行所述第一存储器中存储的数据同步程序,以实现权利要求1~2中任一项所述的数据同步方法的步骤。
9.一种数据同步设备,其特征在于,所述数据同步设备被设置在第二系统侧,所述第二系统侧的数据同步设备包括第二处理器、第二存储器;所述第二处理器用于执行所述第二存储器中存储的数据同步程序,以实现权利要求3~7中任一项所述的数据同步方法的步骤。
10.一种计算机可存储介质,其特征在于,所述计算机可存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~2中任一项所述的数据同步方法的步骤,和/或实现权利要求3~7中任一项所述的数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125736.6A CN109299122A (zh) | 2018-09-26 | 2018-09-26 | 一种数据同步方法、设备和计算机可存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125736.6A CN109299122A (zh) | 2018-09-26 | 2018-09-26 | 一种数据同步方法、设备和计算机可存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109299122A true CN109299122A (zh) | 2019-02-01 |
Family
ID=65164378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811125736.6A Pending CN109299122A (zh) | 2018-09-26 | 2018-09-26 | 一种数据同步方法、设备和计算机可存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299122A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569269A (zh) * | 2019-11-06 | 2019-12-13 | 成都四方伟业软件股份有限公司 | 一种数据同步方法及系统 |
CN110765165A (zh) * | 2019-10-23 | 2020-02-07 | 中国银行股份有限公司 | 一种跨系统数据同步处理的方法、装置及系统 |
CN110928532A (zh) * | 2019-11-20 | 2020-03-27 | 杭州安恒信息技术股份有限公司 | 一种高一致性微服务架构及其数据更新方法 |
WO2020180266A1 (en) * | 2019-03-04 | 2020-09-10 | Kale Yazilim Sanayi Ve Ticaret Anonim Sirketi | Data centers which function with active architecture for work continuity |
CN111913973A (zh) * | 2020-07-05 | 2020-11-10 | 中信银行股份有限公司 | 一种数据同步方法、装置及存储介质 |
CN113626221A (zh) * | 2021-08-10 | 2021-11-09 | 迈普通信技术股份有限公司 | 一种消息入队方法及装置 |
CN115002507A (zh) * | 2022-07-29 | 2022-09-02 | 飞狐信息技术(天津)有限公司 | 一种视频数据更新方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345423A (zh) * | 2013-07-03 | 2013-10-09 | 北京京东尚科信息技术有限公司 | 一种处理异步任务的方法和系统 |
CN103875229A (zh) * | 2013-12-02 | 2014-06-18 | 华为技术有限公司 | 异步复制方法、装置与系统 |
CN106385382A (zh) * | 2016-09-05 | 2017-02-08 | 努比亚技术有限公司 | 一种数据同步方法、装置和系统 |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
-
2018
- 2018-09-26 CN CN201811125736.6A patent/CN109299122A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345423A (zh) * | 2013-07-03 | 2013-10-09 | 北京京东尚科信息技术有限公司 | 一种处理异步任务的方法和系统 |
CN103875229A (zh) * | 2013-12-02 | 2014-06-18 | 华为技术有限公司 | 异步复制方法、装置与系统 |
CN106385382A (zh) * | 2016-09-05 | 2017-02-08 | 努比亚技术有限公司 | 一种数据同步方法、装置和系统 |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020180266A1 (en) * | 2019-03-04 | 2020-09-10 | Kale Yazilim Sanayi Ve Ticaret Anonim Sirketi | Data centers which function with active architecture for work continuity |
CN110765165A (zh) * | 2019-10-23 | 2020-02-07 | 中国银行股份有限公司 | 一种跨系统数据同步处理的方法、装置及系统 |
CN110765165B (zh) * | 2019-10-23 | 2022-07-29 | 中国银行股份有限公司 | 一种跨系统数据同步处理的方法、装置及系统 |
CN110569269A (zh) * | 2019-11-06 | 2019-12-13 | 成都四方伟业软件股份有限公司 | 一种数据同步方法及系统 |
CN110928532A (zh) * | 2019-11-20 | 2020-03-27 | 杭州安恒信息技术股份有限公司 | 一种高一致性微服务架构及其数据更新方法 |
CN110928532B (zh) * | 2019-11-20 | 2022-04-29 | 杭州安恒信息技术股份有限公司 | 一种高一致性微服务架构及其数据更新方法 |
CN111913973A (zh) * | 2020-07-05 | 2020-11-10 | 中信银行股份有限公司 | 一种数据同步方法、装置及存储介质 |
CN113626221A (zh) * | 2021-08-10 | 2021-11-09 | 迈普通信技术股份有限公司 | 一种消息入队方法及装置 |
CN113626221B (zh) * | 2021-08-10 | 2024-03-15 | 迈普通信技术股份有限公司 | 一种消息入队方法及装置 |
CN115002507A (zh) * | 2022-07-29 | 2022-09-02 | 飞狐信息技术(天津)有限公司 | 一种视频数据更新方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299122A (zh) | 一种数据同步方法、设备和计算机可存储介质 | |
CN103853727B (zh) | 提高大数据量查询性能的方法及系统 | |
CN103207867B (zh) | 处理数据块的方法、发起恢复操作的方法和节点 | |
CN103858122B (zh) | 保持客户端/服务器系统内的分布式复制内容的高度一致性的方法和系统 | |
CN105302895B (zh) | 一种数据缓存同步方法、服务器和客户端 | |
CN112597249B (zh) | 一种业务数据的同步分发存储方法及系统 | |
CN110609865B (zh) | 一种信息同步方法,装置及系统 | |
CN106161593A (zh) | 消息轮询方法和服务器、通信系统 | |
CN102291416A (zh) | 一种客户端与服务器端双向同步的方法及系统 | |
CN103370709A (zh) | 用于分段多媒体的缓存管理器以及用于缓存管理的相应方法 | |
CN111338773A (zh) | 一种分布式定时任务调度方法、调度系统及服务器集群 | |
CN103780675B (zh) | 一种云盘文件同步方法和装置 | |
CN105205143B (zh) | 一种文件存储及处理方法、设备和系统 | |
WO2015065861A1 (en) | Synchronizing event history for multiple clients | |
CN109582381A (zh) | 文件型配置信息同步系统、方法及存储介质 | |
CN101472166A (zh) | 一种内容缓存、查询方法及点对点媒体传输系统 | |
CN103164525A (zh) | Web应用发布方法和装置 | |
CN101841557A (zh) | 一种基于十字链表的p2p流媒体下载方法和系统 | |
CN108183965A (zh) | 一种数据同步方法、装置、设备、系统及可读存储介质 | |
CN103237063B (zh) | 一种云存储方法及其云控制服务器、云存储服务器和系统 | |
CN113206757B (zh) | 流式同步网管配置全量数据和增量数据的方法及电子设备 | |
CN107302569A (zh) | 一种面向云平台的安全监控数据采集与存储方法 | |
CN109271367A (zh) | 分布式文件系统多节点快照回滚方法及系统 | |
CN100556038C (zh) | 一种基于外部条件触发节点动作的内容分发方法 | |
CN104320330A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190201 |
|
RJ01 | Rejection of invention patent application after publication |