CN112380227A - 基于消息队列的数据同步方法、装置、设备及存储介质 - Google Patents
基于消息队列的数据同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112380227A CN112380227A CN202011264779.XA CN202011264779A CN112380227A CN 112380227 A CN112380227 A CN 112380227A CN 202011264779 A CN202011264779 A CN 202011264779A CN 112380227 A CN112380227 A CN 112380227A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- message queue
- incremental
- stock
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013524 data verification Methods 0.000 claims abstract description 20
- 238000012795 verification Methods 0.000 claims description 26
- 230000001360 synchronised effect Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 11
- 230000006399 behavior Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于消息队列的数据同步方法、装置、设备及存储介质,涉及计算机数据同步技术领域。该方法包括:确认源数据端和目标数据端识别出存量数据与增量数据;将存量数据写入消息队列后,保存至本地数据库中与已有数据进行数据校验;将增量数据同步至本地数据库中,并写入消息队列;接收消息订阅指令;从已写入消息队列的存量数据或增量数据中识别出所订阅的目标数据后,将目标数据同步至所述目标数据端。所述方法通过设置中间数据库,以及采用消息队列的方式实现对不同环境下的数据库之间的数据同步,其逻辑简单、操作简便、风险低,可保证配置数据同步的灵活性,数据传输稳定且时效性高,无需专业的数据库管理人员操作。
Description
技术领域
本申请涉及计算机数据同步技术领域,特别是一种基于消息队列的数据同步方法、装置、设备及存储介质。
背景技术
随着数据库技术的发展,越来越多的业务系统采用数据库对数据进行存储和管理。在业务系统运行的过程中,所产生的数据被记录在业务系统的数据库中。而为了提高业务系统的可用性,就需要将数据同步到其他数据中心,在异地数据中心提供服务。
目前,业内主要是通过底层数据库物理复制或者工具的同步,存在数据库类型不支持,逻辑复杂的缺陷,且常用方案存在一定的延时,不满足业务的需求。
发明内容
本申请实施例所要解决的技术问题是,提供一种基于消息队列的数据同步方法、装置、设备及存储介质,无需专业数据库管理人员操作,便能支持不同环境下数据库之间及时的数据同步。
为了解决上述技术问题,本申请实施例提供一种基于消息队列的数据同步方法,采用了如下所述的技术方案:
一种基于消息队列的数据同步方法,包括:
确认源数据端和目标数据端;
获取目标时间节点,基于所述目标时间节点识别出所述源数据端中的存量数据与增量数据;
将所述存量数据写入消息队列后,将所述存量数据保存至本地数据库中与已有数据进行数据校验;
将所述增量数据同步至本地数据库中,并写入所述消息队列;
接收由所述目标数据端发送的消息订阅指令;
响应于所述消息订阅指令,从已写入所述消息队列的所述存量数据或所述增量数据中识别出所订阅的目标数据后,将所述目标数据同步至所述目标数据端。
为了解决上述技术问题,本申请实施例还提供一种基于消息队列的数据同步装置,采用了如下所述的技术方案:
一种基于消息队列的数据同步装置,包括:
数据端确认模块,用于确认源数据端和目标数据端;
数据类型识别模块,用于获取目标时间节点,基于所述目标时间节点识别出所述源数据端中的存量数据与增量数据;
第一数据写入模块,用于将所述存量数据写入消息队列后,将所述存量数据保存至本地数据库中与已有数据进行数据校验;
第二数据写入模块,用于将所述增量数据同步至本地数据库中,并写入所述消息队列;
指令接收模块,用于接收由所述目标数据端发送的消息订阅指令;
数据同步模块,用于响应于所述消息订阅指令,从已写入所述消息队列的所述存量数据或所述增量数据中识别出所订阅的目标数据后,将所述目标数据同步至所述目标数据端。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项技术方案所述的基于消息队列的数据同步方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项技术方案所述的基于消息队列的数据同步方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例公开了一种基于消息队列的数据同步方法、装置、设备及存储介质,本申请实施例所述的基于消息队列的数据同步方法,确认源数据端和目标数据端后;获取目标时间节点,基于所述目标时间节点识别出所述源数据端中的存量数据与增量数据;将所述存量数据写入消息队列后,将所述存量数据保存至本地数据库中与已有数据进行数据校验;将所述增量数据同步至本地数据库中,并写入所述消息队列;再接收由所述目标数据端发送的消息订阅指令;响应于所述消息订阅指令,从已写入所述消息队列的所述存量数据或所述增量数据中识别出所订阅的目标数据后,将所述目标数据同步至所述目标数据端。所述方法通过设置中间数据库,以及采用消息队列的方式实现对不同环境下的数据库之间的数据同步,其逻辑简单、操作简便、风险低,可保证配置数据同步的灵活性,数据传输稳定且时效性高,无需专业的数据库管理人员操作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例可以应用于其中的示例性系统架构图;
图2为本申请实施例中所述基于消息队列的数据同步方法的一个实施例的流程图;
图3为本申请实施例中所述基于消息队列的数据同步装置的一个实施例的结构示意图;
图4为本申请实施例中计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”、“包含”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本申请的权利要求书、说明书以及说明书附图中的术语,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例相结合。
为了使本技术领域的人员更好地理解本申请的方案,下面将结合本申请实施例中的相关附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括第一终端设备101、第二终端设备102、第三终端设备103、网络104和服务器105。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备101、第二终端设备102和第三终端设备103通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102和第三终端设备103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
第一终端设备101、第二终端设备102和第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对第一终端设备101、第一终端设备102和第三终端设备103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于消息队列的数据同步方法一般由服务器/终端设备执行,相应地,基于消息队列的数据同步装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了本申请实施例中所述基于消息队列的数据同步方法的一个实施例的流程图。所述基于消息队列的数据同步方法,包括以下步骤:
步骤201:确认源数据端和目标数据端。
本申请中,实施数据同步前首先需要明确待同步数据的来源与去处。业务系统运行过程中,其数据库在不断地记录新的业务数据,其他数据中心在处理相关业务时往往需要获取这些业务数据,因此业务系统的数据库即作为源数据端,其中的业务数据便作为待同步数据同步至其他数据中心的数据库中。
其他数据中心需要从业务中心中获取业务数据进行使用时,若直接从业务中心处通过调用接口建立连接获取,不仅时常需要根据需求调整其调用代码,而且容易出现数据库类型不兼容等问题。因此本申请中通过在一个中间数据库中设置消息队列,将源数据端中产生的数业务数据发送至消息队列,然后其他目标数据端从中消费即可。如此源数据端便无需考虑具体给谁发送数据,无需考虑数据类型是否兼容和维护具体代码,也无需考虑其他数据中心是否调用成功、失败超时等情况。
在一些具体实施方式中,中间数据库可以从与其建立通信连接的数据中心中确定源数据端,也可以在确定源数据端之后,再与其建立通信连接。
在本申请的一些实施例中,在步骤201之后,所述基于消息队列的数据同步方法还包括:
通过应用程序接口与所述源数据端建立通信连接;
基于所述应用程序接口接收由所述源数据端发送的目标缓存数据;所述目标缓存数据由所述源数据端从所述目标数据端获取到用户行为数据后,根据所述用户行为数据所关联的业务数据进行确定;
将所述目标缓存数据写入消息队列。
对于一些数据同步的应用场景,会存在相应的缓存需求。本地服务器可以通过应用程序接口(API,Application Programming Interface)与源数据端建立通信连接后,在源数据端检测到用户的相关行为数据,确定所需缓存的数据后,将该部分缓存数据通过应用程序接口发送至本地服务器的消息队列进行缓存预热。
如目标数据端的用户在某个电商网站进行浏览时,该用户在点击某个商品进行访问,源数据端从该电商网站或该电商网站作为源数据端获取到了该用户的上述行为数据,为了使用户能更流畅地浏览该商品的其他相关信息,源数据端便将该商品的相关信息上传到中间数据库的消息队列中,实现数据的缓存预热。
步骤202:获取目标时间节点,基于所述目标时间节点识别出所述源数据端中的存量数据与增量数据。
本申请中,将业务系统的数据库中的业务数据区分为存量数据和增量数据。存量数据即指业务系统的数据库在某一时间节点时所拥有的业务数据,即已存在的历史数据,增量数据则指数据库中在该时间节点之后发生了变化的业务数据。对于上述两种类型的业务数据,在作为中间方的当前数据中心的数据库中,本申请分别采用不同的处理方式与当前数据中心中的本地数据进行同步。
因此获取到用于判断数据类型的时间节点后,便根据该时间节点对源数据端中的业务数据的类别进行识别,将数据区分为存量数据和增量数据后再进一步处理。
步骤203:将所述存量数据写入消息队列后,将所述存量数据保存至本地数据库中与已有数据进行数据校验。
对于识别出的存量数据,先将其写入在当前数据中心处设置的消息队列中,然后将存量数据落地到当前数据中心的数据库中,并通过数据校验判断存量数据与当前数据中心中存储的历史业务数据是否存在差异。
在本申请的一些实施例中,步骤203中所述,将所述存量数据保存至本地数据库中与已有数据进行数据校验的步骤包括:
获取预设的校验时间段,分别抽取所述存量数据在每个校验时间段内的第一校验数据,将所述第一校验数据与本地数据库在每个校验时间段内对应的第二校验数据分别进行数据对比;
若所述第一校验数据与所述第二校验数据之间存在差异,则提取出所述第一校验数据中存在差异的目标段数据,并将所述目标段数据重新标记为增量数据。
对存量数据进行数据校验时,首先根据预设的校验时间段,抽取存量数据在第一个校验时间段内的第一校验数据,将其余本地数据库在第一个校验时间段内对应的第二校验数据进行对比,对比完成后或在对比过程中,转入下一个校验时间段,继续上述操作,直至将存量数据在校验时间段内的所有数据校验完成。其中进行校验时,发现第一校验数据与第二校验数据之间存在差异的,则判断不属于存量数据,将其中具有差异的目标段数据提取出来,重新标记为增量数据,以基于对增量数据的同步方案继续进行处理。
步骤204:将所述增量数据同步至本地数据库中,并写入所述消息队列。
对于识别出的增量数据,将其直接写入当前数据中心的本地数据库中进行同步存储,同时将其写入消息队列中。其中,增量数据包括其主键id(Identity document,身份标识号码)和类型字段,主键id为数据对应数据库的唯一标识,可以根据id从数据库中查询到对应数据,类型字段则用于标识数据的类型。
在本申请的一些实施例中,在步骤204之后,所述基于消息队列的数据同步方法还包括:
识别出所述增量数据的主键id和类型字段;
根据所述主键id和所述类型字段在所述源数据端和本地数据库分别进行查询,以对增量数据进行对比校验。
当本地数据中心检测到其消息队列已接收到增量数据后,便根据其携带的主键id和类型字段在源数据端和本地数据库中分别进行查询,对增量数据的在上述两端数据库中存储的数据信息进行校验,以判断增量数据在本地数据库的同步结果是否正常。
进一步的,所述根据所述主键id和所述类型字段在所述源数据端和本地数据库分别进行查询,以对增量数据进行对比校验的步骤包括:
在上述实施例的一种具体实施方式中,将在源数据端查询所获取到的数据记录记为第一增量数据,将在本地数据库中查询所获取到的数据记录记为第二增量数据,将二者的数据信息进行比较,便能较准确地判断增量数据的同步结果。
其中,若第二增量数据的记录为空,则在本地数据库中通过复制或再同步的方式将所述第一增量数据添加到本地数据库中,作为所述增量数据在本地数据库中的第二增量数据。
若第一增量数据的记录与第二增量数据的记录存在不同,即在本地数据库中同步的数据与源数据之间存在差异,便以第一增量数据为依据对第二增量数据进行修改,一般可以采用直接覆盖的方式进行修改,实现对增量数据同步中出现的异常进行数据修复,确保数据同步的正确性和完整性。
步骤205:接收由所述目标数据端发送的消息订阅指令。
目标数据端只需从消息队列中消费所需数据,无需与源数据端直接建立通信连接。具体地,目标数据端通过定制消息订阅指令以指明其所需业务数据的主键id后,将消息订阅指令发送给作为中间端的当前数据中心,使当前数据中心接收到上述消息订阅指令后进行响应,从消息订阅指令中查询具有指定主键id的业务数据。
在本申请实施例中,所述基于消息队列的数据同步方法运行于其上的电子设备(例如图1所示的服务器/终端设备)可以通过有线连接方式或者无线连接方式接收目标数据端发送至服务器的消息订阅指令。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
步骤206:响应于所述消息订阅指令,从已写入所述消息队列的所述存量数据或所述增量数据中识别出所订阅的目标数据后,将所述目标数据同步至所述目标数据端。
当前数据中心接收到消息订阅指令后对其进行响应,根据消息订阅指令中指定的主键id,从消息队列的存量数据或增量数据中查询符合所述主键id的业务数据,从而从消息队列中获取到目标数据端所需订阅的目标数据后,将目标数据同步至所述目标数据端。
作为中间端数据中心的本地服务器,其中的业务数据是与源数据端保持同步,并根据预设的校验程序进行周期性校验以保持一致的。目标数据端的用户后续需要进行数据校验时,便无需打扰源数据端,只需作为中间端的数据中心中的数据进行对比校验即可。
在本申请的一些实施例中,在步骤206之后,所述基于消息队列的数据同步方法还包括:
接收数据校验指令,所述数据校验指令由所述目标数据端在到达预设的时间区间内时自动激活发送;
响应于所述数据校验指令,对已同步至所述目标数据端的所述目标数据进行数据一致性校验。
目标数据端完成数据同步操作后,有时需要通过对已同步数据进行再校验,检测同步效果是否正常。而为了不影响目标数据端系统的正常运行,可以预先设定进行数据校验的时间段,该时间段属于目标数据端较空闲的非工作时间段。
在该时间段对应的时间区间内的任意时间,目标数据端都可以发起数据一致性校验,校验的方式可以为增量校验也可以为全量校验。一般地,若其系统资源空闲,则到达该时间区间的起点时,便自动激活预设的数据校验指令发起数据校验,若到达起点对应的时间节点系统资源无空闲,便等待至系统资源空闲时再自动激活。而若到达该时间区间的终点,对数据一致性的校验若还未完成,便暂停校验,交由管理用户判断是否继续。
本申请实施例所述的基于消息队列的数据同步方法,通过设置中间数据库,以及采用消息队列的方式实现对不同环境下的数据库之间的数据同步,其逻辑简单、操作简便、风险低,可保证配置数据同步的灵活性,数据传输稳定且时效性高,无需专业的数据库管理人员操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,图3示出了为本申请实施例中所述基于消息队列的数据同步装置的一个实施例的结构示意图。作为对上述图2所示方法的实现,本申请提供了一种基于消息队列的数据同步装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的基于消息队列的数据同步装置包括:
数据端确认模块301;用于确认源数据端和目标数据端。
数据类型识别模块302;用于获取目标时间节点,基于所述目标时间节点识别出所述源数据端中的存量数据与增量数据。
第一数据写入模块303;用于将所述存量数据写入消息队列后,将所述存量数据保存至本地数据库中与已有数据进行数据校验。
第二数据写入模块304;用于将所述增量数据同步至本地数据库中,并写入所述消息队列。
指令接收模块305;用于接收由所述目标数据端发送的消息订阅指令。
数据同步模块306;用于响应于所述消息订阅指令,从已写入所述消息队列的所述存量数据或所述增量数据中识别出所订阅的目标数据后,将所述目标数据同步至所述目标数据端。
在本申请的一些实施例中,所述基于消息队列的数据同步装置还包括:数据缓存模块。在所述数据端确认模块301确认源数据端和目标数据端后,所述数据缓存模块用于:通过应用程序接口与所述源数据端建立通信连接;基于所述应用程序接口接收由所述源数据端发送的目标缓存数据;所述目标缓存数据由所述源数据端从所述目标数据端获取到用户行为数据后,根据所述用户行为数据所关联的业务数据进行确定;将所述目标缓存数据写入消息队列。
在本申请的一些实施例中,所述第一数据写入模块303还包括:第一数据校验子模块。所述第一数据校验子模块用于获取预设的校验时间段,分别抽取所述存量数据在每个校验时间段内的第一校验数据,将所述第一校验数据与本地数据库在每个校验时间段内对应的第二校验数据分别进行数据对比;若所述第一校验数据与所述第二校验数据之间存在差异,则提取出所述第一校验数据中存在差异的目标段数据,并将所述目标段数据重新标记为增量数据。
在本申请的一些实施例中,所述第二数据写入模块304还包括:第二数据校验子模块。在所述第二数据写入模块304将所述增量数据同步至本地数据库中后,所述第二数据校验子模块用于识别出所述增量数据的主键id和类型字段;根据所述主键id和所述类型字段在所述源数据端和本地数据库分别进行查询,以对增量数据进行对比校验。
进一步的,所述第二数据校验子模块还用于根据所述主键id和所述类型字段在所述源数据端进行查询以获取第一增量数据,根据所述主键id和所述类型字段在本地数据库进行查询以获取第二增量数据;对比所述第一增量数据和所述第二增量数据,若不同,则基于所述第一增量数据对所述第二增量数据进行修改。
在本申请的一些实施例,所述基于消息队列的数据同步装置还包括:终端数据校验模块。所述终端数据校验模块用于:接收数据校验指令,所述数据校验指令由所述目标数据端在到达预设的时间区间内时自动激活发送;响应于所述数据校验指令,对已同步至所述目标数据端的所述目标数据进行数据一致性校验。
本申请实施例所述的基于消息队列的数据同步装置,通过设置中间数据库,以及采用消息队列的方式实现对不同环境下的数据库之间的数据同步,其逻辑简单、操作简便、风险低,可保证配置数据同步的灵活性,数据传输稳定且时效性高,无需专业的数据库管理人员操作。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备6包括通过系统总线相互通信连接存储器61、处理器62、网络接口63。需要指出的是,图中仅示出了具有组件61-63的计算机设备6,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器61至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器61可以是所述计算机设备6的内部存储单元,例如该计算机设备6的硬盘或内存。在另一些实施例中,所述存储器61也可以是所述计算机设备6的外部存储设备,例如该计算机设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器61还可以既包括所述计算机设备6的内部存储单元也包括其外部存储设备。本实施例中,所述存储器61通常用于存储安装于所述计算机设备6的操作系统和各类应用软件,例如基于消息队列的数据同步方法的程序代码等。此外,所述存储器61还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器62在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器62通常用于控制所述计算机设备6的总体操作。本实施例中,所述处理器62用于运行所述存储器61中存储的程序代码或者处理数据,例如运行所述基于消息队列的数据同步方法的程序代码。
所述网络接口63可包括无线网络接口或有线网络接口,该网络接口63通常用于在所述计算机设备6与其他电子设备之间建立通信连接。
本申请实施例所述的计算机设备,通过处理器执行存储器中存储的计算机程序进行数据推送的功能测试时,无需通过前端操作创建任务,能够实现对大批量基于消息队列的数据同步要求,并减少测试时间的消耗,提升功能测试的效率,在进行数据推送测试的过程中还能方便地进行压力测试,在通过日志判断数据的推送结果时还能方便分析测试时出现的问题,以及对测试过程中出现的问题进行定位。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有基于消息队列的数据同步程序,所述基于消息队列的数据同步程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于消息队列的数据同步方法的步骤。
需要强调的是,为进一步保证上述图片数据的私密和安全性,上述图片数据还可以存储于一区块链的节点中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
在本申请所提供的上述实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述模块或组件可以是或者也可以不是物理上分开的,作为模块或组件显示的部件可以是或者也可以不是物理模块,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块或组件来实现本实施例方案的目的。
本申请不限于上述实施方式,以上所述是本申请的优选实施方式,该实施例仅用于说明本申请而不用于限制本申请的范围,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,其依然可以对前述各具体实施方式所记载的技术方案进行若干改进和修饰,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理应视为包括在本申请的保护范围之内。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,以及凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
Claims (10)
1.一种基于消息队列的数据同步方法,其特征在于,包括:
确认源数据端和目标数据端;
获取目标时间节点,基于所述目标时间节点识别出所述源数据端中的存量数据与增量数据;
将所述存量数据写入消息队列后,将所述存量数据保存至本地数据库中与已有数据进行数据校验;
将所述增量数据同步至本地数据库中,并写入所述消息队列;
接收由所述目标数据端发送的消息订阅指令;
响应于所述消息订阅指令,从已写入所述消息队列的所述存量数据或所述增量数据中识别出所订阅的目标数据后,将所述目标数据同步至所述目标数据端。
2.根据权利要求1所述的基于消息队列的数据同步方法,其特征在于,所述确认源数据端和目标数据端的步骤之后,所述方法还包括:
通过应用程序接口与所述源数据端建立通信连接;
基于所述应用程序接口接收由所述源数据端发送的目标缓存数据;所述目标缓存数据由所述源数据端从所述目标数据端获取到用户行为数据后,根据所述用户行为数据所关联的业务数据进行确定;
将所述目标缓存数据写入消息队列。
3.根据权利要求1所述的基于消息队列的数据同步方法,其特征在于,所述将所述存量数据保存至本地数据库中与已有数据进行数据校验的步骤包括:
获取预设的校验时间段,分别抽取所述存量数据在每个校验时间段内的第一校验数据,将所述第一校验数据与本地数据库在每个校验时间段内对应的第二校验数据分别进行数据对比;
若所述第一校验数据与所述第二校验数据之间存在差异,则提取出所述第一校验数据中存在差异的目标段数据,并将所述目标段数据重新标记为增量数据。
4.根据权利要求1所述的基于消息队列的数据同步方法,其特征在于,在所述将所述增量数据同步至本地数据库中的步骤之后,所述方法还包括:
识别出所述增量数据的主键id和类型字段;
根据所述主键id和所述类型字段在所述源数据端和本地数据库分别进行查询,以对增量数据进行对比校验。
5.根据权利要求4所述的基于消息队列的数据同步方法,其特征在于,所述根据所述主键id和所述类型字段在所述源数据端和本地数据库分别进行查询,以对增量数据进行对比校验的步骤包括:
根据所述主键id和所述类型字段在所述源数据端进行查询以获取第一增量数据,根据所述主键id和所述类型字段在本地数据库进行查询以获取第二增量数据;
对比所述第一增量数据和所述第二增量数据,若不同,则基于所述第一增量数据对所述第二增量数据进行修改。
6.根据权利要求1所述的基于消息队列的数据同步方法,其特征在于,在所述将所述目标数据同步至所述目标数据端的步骤之后,所述方法还包括:
接收数据校验指令,所述数据校验指令由所述目标数据端在到达预设的时间区间内时自动激活发送;
响应于所述数据校验指令,对已同步至所述目标数据端的所述目标数据进行数据一致性校验。
7.根据权利要求1所述的基于消息队列的数据同步方法,其特征在于,在所述获取目标时间节点的步骤之后,所述方法还包括:
将所述目标时间节点存储至区块链中。
8.一种基于消息队列的数据同步装置,其特征在于,包括:
数据端确认模块,用于确认源数据端和目标数据端;
数据类型识别模块,用于获取目标时间节点,基于所述目标时间节点识别出所述源数据端中的存量数据与增量数据;
第一数据写入模块,用于将所述存量数据写入消息队列后,将所述存量数据保存至本地数据库中与已有数据进行数据校验;
第二数据写入模块,用于将所述增量数据同步至本地数据库中,并写入所述消息队列;
指令接收模块,用于接收由所述目标数据端发送的消息订阅指令;
数据同步模块,用于响应于所述消息订阅指令,从已写入所述消息队列的所述存量数据或所述增量数据中识别出所订阅的目标数据后,将所述目标数据同步至所述目标数据端。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任意一项所述的基于消息队列的数据同步方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任意一项所述的基于消息队列的数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011264779.XA CN112380227B (zh) | 2020-11-12 | 2020-11-12 | 基于消息队列的数据同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011264779.XA CN112380227B (zh) | 2020-11-12 | 2020-11-12 | 基于消息队列的数据同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112380227A true CN112380227A (zh) | 2021-02-19 |
CN112380227B CN112380227B (zh) | 2024-05-07 |
Family
ID=74583561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011264779.XA Active CN112380227B (zh) | 2020-11-12 | 2020-11-12 | 基于消息队列的数据同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380227B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019408A (zh) * | 2017-12-29 | 2019-07-16 | 北京奇虎科技有限公司 | 一种用于追溯数据状态的方法、装置及计算机设备 |
CN113098969A (zh) * | 2021-04-09 | 2021-07-09 | 薪得付信息技术(上海)有限公司 | 数据分发方法、装置、系统及电子设备 |
CN113094434A (zh) * | 2021-04-08 | 2021-07-09 | 中国工商银行股份有限公司 | 数据库同步方法、系统、装置、电子设备及介质 |
CN113407631A (zh) * | 2021-06-24 | 2021-09-17 | 深圳智多豚物联技术有限公司 | 基于kafka与哈希共享内存的分布式数据中心 |
CN114238303A (zh) * | 2021-12-23 | 2022-03-25 | 广东太平洋互联网信息服务有限公司 | 一种数据清洗方法、装置、电子设备及存储介质 |
CN114584575A (zh) * | 2022-05-06 | 2022-06-03 | 中海油田服务股份有限公司 | 船舶管理体系中的船岸通信方法及系统 |
CN115883107A (zh) * | 2022-12-08 | 2023-03-31 | 四川启睿克科技有限公司 | 一种基于异步md5校验机制的数据变更记录方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330003A (zh) * | 2017-06-12 | 2017-11-07 | 上海藤榕网络科技有限公司 | 数据同步方法、系统、存储器及数据同步设备 |
CN107958010A (zh) * | 2016-10-18 | 2018-04-24 | 北京京东尚科信息技术有限公司 | 用于在线数据迁移的方法及系统 |
CN110196844A (zh) * | 2018-04-16 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据迁移方法、系统及存储介质 |
CN110232097A (zh) * | 2019-06-21 | 2019-09-13 | 北京奇艺世纪科技有限公司 | 一种数据同步方法及装置 |
CN110321383A (zh) * | 2019-05-20 | 2019-10-11 | 平安普惠企业管理有限公司 | 大数据平台数据同步方法、装置、计算机设备及存储介质 |
CN110765206A (zh) * | 2019-10-21 | 2020-02-07 | 广东小天才科技有限公司 | 一种数据同步系统、方法、装置、设备及存储介质 |
CN111367994A (zh) * | 2019-06-27 | 2020-07-03 | 北京关键科技股份有限公司 | 数据库增量数据同步备份方法及系统 |
CN111538779A (zh) * | 2020-03-25 | 2020-08-14 | 平安健康保险股份有限公司 | 一种增量数据同步的方法、装置、计算机设备及存储介质 |
CN111881116A (zh) * | 2020-08-05 | 2020-11-03 | 中国工商银行股份有限公司 | 数据迁移方法、数据迁移系统、计算机系统和存储介质 |
-
2020
- 2020-11-12 CN CN202011264779.XA patent/CN112380227B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107958010A (zh) * | 2016-10-18 | 2018-04-24 | 北京京东尚科信息技术有限公司 | 用于在线数据迁移的方法及系统 |
CN107330003A (zh) * | 2017-06-12 | 2017-11-07 | 上海藤榕网络科技有限公司 | 数据同步方法、系统、存储器及数据同步设备 |
CN110196844A (zh) * | 2018-04-16 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据迁移方法、系统及存储介质 |
CN110321383A (zh) * | 2019-05-20 | 2019-10-11 | 平安普惠企业管理有限公司 | 大数据平台数据同步方法、装置、计算机设备及存储介质 |
CN110232097A (zh) * | 2019-06-21 | 2019-09-13 | 北京奇艺世纪科技有限公司 | 一种数据同步方法及装置 |
CN111367994A (zh) * | 2019-06-27 | 2020-07-03 | 北京关键科技股份有限公司 | 数据库增量数据同步备份方法及系统 |
CN110765206A (zh) * | 2019-10-21 | 2020-02-07 | 广东小天才科技有限公司 | 一种数据同步系统、方法、装置、设备及存储介质 |
CN111538779A (zh) * | 2020-03-25 | 2020-08-14 | 平安健康保险股份有限公司 | 一种增量数据同步的方法、装置、计算机设备及存储介质 |
CN111881116A (zh) * | 2020-08-05 | 2020-11-03 | 中国工商银行股份有限公司 | 数据迁移方法、数据迁移系统、计算机系统和存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019408A (zh) * | 2017-12-29 | 2019-07-16 | 北京奇虎科技有限公司 | 一种用于追溯数据状态的方法、装置及计算机设备 |
CN110019408B (zh) * | 2017-12-29 | 2024-03-29 | 北京奇虎科技有限公司 | 一种用于追溯数据状态的方法、装置及计算机设备 |
CN113094434A (zh) * | 2021-04-08 | 2021-07-09 | 中国工商银行股份有限公司 | 数据库同步方法、系统、装置、电子设备及介质 |
CN113098969A (zh) * | 2021-04-09 | 2021-07-09 | 薪得付信息技术(上海)有限公司 | 数据分发方法、装置、系统及电子设备 |
CN113407631A (zh) * | 2021-06-24 | 2021-09-17 | 深圳智多豚物联技术有限公司 | 基于kafka与哈希共享内存的分布式数据中心 |
CN113407631B (zh) * | 2021-06-24 | 2023-09-08 | 深圳智多豚物联技术有限公司 | 基于kafka与哈希共享内存的分布式数据中心 |
CN114238303A (zh) * | 2021-12-23 | 2022-03-25 | 广东太平洋互联网信息服务有限公司 | 一种数据清洗方法、装置、电子设备及存储介质 |
CN114584575A (zh) * | 2022-05-06 | 2022-06-03 | 中海油田服务股份有限公司 | 船舶管理体系中的船岸通信方法及系统 |
CN115883107A (zh) * | 2022-12-08 | 2023-03-31 | 四川启睿克科技有限公司 | 一种基于异步md5校验机制的数据变更记录方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112380227B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112380227B (zh) | 基于消息队列的数据同步方法、装置、设备及存储介质 | |
CN110569311A (zh) | 一种数据库的数据同步方法、设备和计算机存储介质 | |
CN109522751B (zh) | 访问权限控制方法、装置、电子设备及计算机可读介质 | |
CN112199442B (zh) | 分布式批量下载文件方法、装置、计算机设备及存储介质 | |
CN110764798A (zh) | 一种微码升级方法、装置、计算机设备及存储介质 | |
CN111800462A (zh) | 微服务实例处理方法、装置、计算机设备及存储介质 | |
CN112860662B (zh) | 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN112380057A (zh) | 数据恢复方法、装置、设备及存储介质 | |
CN112632071A (zh) | 数据库主键id生成方法、装置、设备及存储介质 | |
CN115757495A (zh) | 缓存数据处理方法、装置、计算机设备及存储介质 | |
CN111752944A (zh) | 数据分摊方法、装置、计算机设备及存储介质 | |
CN113254445A (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN115455058A (zh) | 缓存数据的处理方法、装置、计算机设备及存储介质 | |
CN114637611A (zh) | 基于消息队列的信息处理方法、装置及计算机设备 | |
CN113254106B (zh) | 基于Flink的任务执行方法、装置、计算机设备及存储介质 | |
CN107657155B (zh) | 用于鉴定用户操作权限的方法和装置 | |
CN117094729A (zh) | 请求处理方法、装置、计算机设备及存储介质 | |
CN117251490A (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN114186976A (zh) | 工作流程流转方法、装置、计算机设备及存储介质 | |
CN115687826A (zh) | 页面刷新方法、装置、计算机设备及存储介质 | |
CN114626352A (zh) | 报表自动化生成方法、装置、计算机设备及存储介质 | |
CN114143308A (zh) | 文件上传信息处理方法、装置、计算机设备及存储介质 | |
CN112632192A (zh) | 节点维护方法、装置、计算机设备及介质 | |
WO2016178920A1 (en) | Insertion of unsaved content via content channel | |
CN115002218B (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 |