CN111026774A - 数据顺序同步方法、装置、计算机设备及存储介质 - Google Patents
数据顺序同步方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111026774A CN111026774A CN201911220151.7A CN201911220151A CN111026774A CN 111026774 A CN111026774 A CN 111026774A CN 201911220151 A CN201911220151 A CN 201911220151A CN 111026774 A CN111026774 A CN 111026774A
- Authority
- CN
- China
- Prior art keywords
- message
- same
- partition
- record table
- change record
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000008859 change Effects 0.000 claims abstract description 97
- 238000005192 partition Methods 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 21
- 230000007246 mechanism Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical 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/23—Updating
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据顺序同步方法、装置、计算机设备及存储介质。所述方法包括:获取数据库的变更记录表,并将变更记录表发送给消息中间件;将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。本发明实施例通过将同一个数据的消息分发到消息中间件的同一个分区或者同一个消息队列中,由于消息中间件的同一个分区或同一个消息队列里的消息是有序的,所以消息消费者在消费消息的时候也是按顺序消费的,从而确保了数据同步的一致性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据顺序同步方法、装置、计算机设备及存储介质。
背景技术
数据同步是大数据经常遇到的问题,其中就包括SQL server中的数据同步。虽然目前有很多数据同步的方案,但是对于保证数据同步的顺序的研究还比较少。数据同步的顺序如果出了问题,数据一致性就会出现问题。例如,对于先增加一个数据后修改一个数据,如果顺序不恰当就会变成先修改后增加,导致数据的一致性出现问题,为了解决这种数据不一致的问题,成为本领域亟待解决的技术问题。
发明内容
本发明实施例提供了一种数据顺序同步方法、装置、计算机设备及存储介质,旨在解决现有技术中数据库中数据同步的顺序不一致的问题。
第一方面,本发明实施例提供了一种数据顺序同步方法,其包括:
获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;
将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;
通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
其进一步的技术方案为,所述获取数据库的变更记录表,包括:
开启数据库的CDC机制或者Change Tracking机制,以获取数据库的变更记录表。
其进一步的技术方案为,所述变更记录表的格式为JSON格式。
其进一步的技术方案为,所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区,包括:
获取消息的唯一字段的hash值;
通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
其进一步的技术方案为,所述获取消息唯一字段的hash值之前,所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区,还包括:
判断消息的唯一字段的值是否存在;
若消息的唯一字段的值不存在,获取所述变更记录表的表名的hash值;
通过所述变更记录表的表名的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区;
若消息的唯一字段的值存在,转到所述获取消息的唯一字段的hash值的步骤。
第二方面,本发明实施例还提供了一种数据顺序同步装置,其包括:
第一获取单元,用于获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;
分发单元,用于将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;
处理单元,用于通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
其进一步的技术方案为,所述第一获取单元包括:
开启单元,用于开启数据库的CDC机制或者Change Tracking机制,以获取数据库的变更记录表。
其进一步的技术方案为,所述分发单元包括:
第二获取单元,用于获取消息的唯一字段的hash值;
第一运算单元,用于通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现上述方法。
本发明实施例提供了一种数据顺序同步方法、装置、计算机设备及存储介质。其中,所述方法包括:获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。本发明将同一个数据的消息分发到消息中间件的同一个分区或者同一个消息队列中,由于消息中间件的同一个分区或同一个消息队列里的消息是有序的,所以消息消费者在消费消息的时候也是按顺序消费的,从而确保了数据同步的一致性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据顺序同步方法的流程示意图;
图2为本发明实施例提供的一种数据顺序同步方法的子流程示意图;
图3为本发明实施例提供的一种数据顺序同步方法的子流程示意图;
图4为本发明实施例提供的一种数据顺序同步装置的示意性框图;
图5为本发明实施例提供的一种数据顺序同步装置的第一获取单元的示意性框图;
图6为本发明实施例提供的一种数据顺序同步装置的分发单元的示意性框图;
图7为本发明另一实施例提供的一种数据顺序同步装置的分发单元的示意性框图;
图8为本发明实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
请参阅图1,图1是本发明实施例提供的一种数据顺序同步方法的流程示意图。如图所示,该方法包括以下步骤S1-S3。
S1,获取数据库的变更记录表,并将所述变更记录表发送给消息中间件。
具体实施中,获取数据库的变更记录表,并将所述变更记录表发送给消息中间件。变更记录表记录了数据库(例如,SQL数据库)中,表的插入、更新和删除等变更的消息。
具体实施中,以上步骤S1具体包括如下步骤:开启数据库的CDC机制或者ChangeTracking机制,以获取数据库的变更记录表。CDC(Change Data Capture,变更数据捕获)记录数据库表的插入、更新和删除活动,并将其记录在变更记录表中。Change Tracking,即更改跟踪,用于捕获和记录数据库的更改(插入、更新和删除操作),为某些有特殊需求的应用程序服务。
需要说明的是,在本发明实施例中,所述变更记录表的格式为JSON格式。JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。
S2,将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同。
具体实施中,将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同。通过以上操作,可将同一个数据的消息分发到同一个分区或者同一个消息队列中。
参见图2,在一实施例中,以上步骤S2具体包括如下步骤S21-S22。
S21,获取消息的唯一字段的hash值。
具体实施中,计算消息的唯一字段的hash值。
S22,通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
具体实施中,通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
例如,在一具体实施例中,消息中间件包括4个分区,hash值对4取余数,余数总是0-3之间的值。若余数是0,则分到第一个分区;若余数是2,则分到第一个分区;若余数是2,则分到第三个分区;若余数是3,则分到第四个分区。
参见图3,在一实施例中,以上步骤S2还包括如下步骤:
S31,判断消息的唯一字段的值是否存在。
具体实施中,判断消息的唯一字段的值是否存在。
若消息的唯一字段的值存在,转到步骤S21。
S32,若消息的唯一字段的值不存在,获取所述变更记录表的表名的hash值。
具体实施中,若消息的唯一字段的值不存在,为了避免消息丢失,获取所述变更记录表的表名的hash值。
S33,通过所述变更记录表的表名的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
具体实施中,通过所述变更记录表的表名的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
例如,在一具体实施例中,消息中间件包括4个分区,hash值对4取余数,余数总是0-3之间的值。若余数是0,则分到第一个分区;若余数是2,则分到第一个分区;若余数是2,则分到第三个分区;若余数是3,则分到第四个分区。
S3,通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
具体实施中,通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
消息消费者为业务的处理方,负责从分区获取消息队列中获取消息并进行业务逻辑处理以实现对所述数据库的数据进行变更。
通过应用本发明实施例的技术方案,获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。本发明将同一个数据的消息分发到消息中间件的同一个分区或者同一个消息队列中,由于消息中间件的同一个分区或同一个消息队列里的消息是有序的,所以消息消费者在消费消息的时候也是按顺序消费的,从而确保了数据同步的一致性。
图4是本发明实施例提供的一种数据顺序同步装置40的示意性框图。如图4所示,对应于以上数据顺序同步方法,本发明还提供一种数据顺序同步装置40。该数据顺序同步装置40包括用于执行上述数据顺序同步方法的单元,该数据顺序同步装置40可以被配置于台式电脑、平板电脑、手提电脑、等终端中。具体地,请参阅图4,该数据顺序同步装置40包括第一获取单元41、分发单元42以及处理单元43。
第一获取单元41,用于获取数据库的变更记录表,并将所述变更记录表发送给消息中间件。
分发单元42,用于将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同。
处理单元43,用于通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
在一实施例中,如图5所示,所述第一获取单元41包括开启单元411。
开启单元411,用于开启数据库的CDC机制或者Change Tracking机制,以获取数据库的变更记录表。
在一实施例中,如图6所示,所述分发单元42包括第二获取单元421以及第一运算单元422。
第二获取单元421,用于获取消息的唯一字段的hash值。
第一运算单元422,用于通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
在一实施例中,如图7所示,所述分发单元42还包括判断单元423、第三获取单元424以及第二运算单元425。
判断单元423,用于判断消息的唯一字段的值是否存在。
第三获取单元422,用于若消息的唯一字段的值不存在,获取所述变更记录表的表名的hash值。
第二运算单元425,用于通过所述变更记录表的表名的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述数据顺序同步装置40和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述数据顺序同步装置40可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。
请参阅图8,图8是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图8,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行一种数据顺序同步方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种数据顺序同步方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;
将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;
通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
在一实施例中,处理器502在实现所述获取数据库的变更记录表步骤时,具体实现如下步骤:
开启数据库的CDC机制或者Change Tracking机制,以获取数据库的变更记录表。
在一实施例中,处理器502在实现所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区步骤时,具体实现如下步骤:
获取消息的唯一字段的hash值;
通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
在一实施例中,处理器502在实现所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区步骤时,还实现如下步骤:
判断消息的唯一字段的值是否存在;
若消息的唯一字段的值不存在,获取所述变更记录表的表名的hash值;
通过所述变更记录表的表名的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区;
若消息的唯一字段的值存在,转到所述获取消息的唯一字段的hash值的步骤。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序。该计算机程序被处理器执行时使处理器执行如下步骤:
获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;
将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;
通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
在一实施例中,所述处理器在执行所述计算机程序而实现所述获取数据库的变更记录表步骤时,具体实现如下步骤:
开启数据库的CDC机制或者Change Tracking机制,以获取数据库的变更记录表。
在一实施例中,所述处理器在执行所述计算机程序而实现所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区步骤时,具体实现如下步骤:
获取消息的唯一字段的hash值;
通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
在一实施例中,所述处理器在执行所述计算机程序而实现所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区步骤时,还实现如下步骤:
判断消息的唯一字段的值是否存在;
若消息的唯一字段的值不存在,获取所述变更记录表的表名的hash值;
通过所述变更记录表的表名的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区;
若消息的唯一字段的值存在,转到所述获取消息的唯一字段的hash值的步骤。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,尚且本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据顺序同步方法,其特征在于,包括:
获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;
将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;
通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
2.根据权利要求1所述的数据顺序同步方法,其特征在于,所述获取数据库的变更记录表,包括:
开启数据库的CDC机制或者Change Tracking机制,以获取数据库的变更记录表。
3.根据权利要求1所述的数据顺序同步方法,其特征在于,所述变更记录表的格式为JSON格式。
4.根据权利要求1所述的数据顺序同步方法,其特征在于,所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区,包括:
获取消息的唯一字段的hash值;
通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
5.根据权利要求4所述的数据顺序同步方法,其特征在于,所述获取消息唯一字段的hash值之前,所述将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区,还包括:
判断消息的唯一字段的值是否存在;
若消息的唯一字段的值不存在,获取所述变更记录表的表名的hash值;
通过所述变更记录表的表名的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区;
若消息的唯一字段的值存在,转到所述获取消息的唯一字段的hash值的步骤。
6.一种数据顺序同步装置,其特征在于,包括:
第一获取单元,用于获取数据库的变更记录表,并将所述变更记录表发送给消息中间件;
分发单元,用于将所述变更记录表中唯一字段相同的消息分发到所述消息中间件的同一个分区或者同一个消息队列中,其中,同一个数据的消息的唯一字段相同;
处理单元,用于通过消息消费者从所述消息中间件的分区或者消息队列中获取消息,并对获取到的消息进行处理以对所述数据库的数据进行变更。
7.根据权利要求6所述的数据顺序同步装置,其特征在于,所述第一获取单元包括:
开启单元,用于开启数据库的CDC机制或者Change Tracking机制,以获取数据库的变更记录表。
8.根据权利要求6所述的数据顺序同步装置,其特征在于,所述分发单元包括:
第二获取单元,用于获取消息的唯一字段的hash值;
第一运算单元,用于通过所述唯一字段的hash值对所述消息中间件的分区数进行取模运算,并根据取模运算得到的余数确定消息对应的分区。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911220151.7A CN111026774A (zh) | 2019-12-03 | 2019-12-03 | 数据顺序同步方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911220151.7A CN111026774A (zh) | 2019-12-03 | 2019-12-03 | 数据顺序同步方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111026774A true CN111026774A (zh) | 2020-04-17 |
Family
ID=70204073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911220151.7A Pending CN111026774A (zh) | 2019-12-03 | 2019-12-03 | 数据顺序同步方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026774A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897878A (zh) * | 2020-08-25 | 2020-11-06 | 中国工商银行股份有限公司 | 主辅数据同步方法及系统 |
CN111913821A (zh) * | 2020-08-17 | 2020-11-10 | 武汉众邦银行股份有限公司 | 一种实现跨数据源实时数据流生产消费的方法 |
CN111930533A (zh) * | 2020-07-28 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于kafka的生产消费同一数据的有序处理方法及系统 |
CN112416575A (zh) * | 2020-11-02 | 2021-02-26 | 中关村科学城城市大脑股份有限公司 | 一种用于城市大脑ai计算的算法模型调度系统及方法 |
CN112612799A (zh) * | 2020-12-08 | 2021-04-06 | 福建天泉教育科技有限公司 | 一种数据同步方法及终端 |
CN112783910A (zh) * | 2021-01-29 | 2021-05-11 | 浪潮通用软件有限公司 | 一种基于消息中间件的数据分发方法及系统 |
CN113111129A (zh) * | 2021-04-16 | 2021-07-13 | 挂号网(杭州)科技有限公司 | 数据同步方法、装置、设备及存储介质 |
CN113254466A (zh) * | 2021-06-18 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739929A (zh) * | 2018-12-18 | 2019-05-10 | 中国人民财产保险股份有限公司 | 数据同步方法、装置及系统 |
CN109815028A (zh) * | 2018-12-27 | 2019-05-28 | 北京摩拜科技有限公司 | 数据同步的系统、方法、装置和计算机存储介质 |
-
2019
- 2019-12-03 CN CN201911220151.7A patent/CN111026774A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739929A (zh) * | 2018-12-18 | 2019-05-10 | 中国人民财产保险股份有限公司 | 数据同步方法、装置及系统 |
CN109815028A (zh) * | 2018-12-27 | 2019-05-28 | 北京摩拜科技有限公司 | 数据同步的系统、方法、装置和计算机存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930533A (zh) * | 2020-07-28 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于kafka的生产消费同一数据的有序处理方法及系统 |
CN111913821A (zh) * | 2020-08-17 | 2020-11-10 | 武汉众邦银行股份有限公司 | 一种实现跨数据源实时数据流生产消费的方法 |
CN111913821B (zh) * | 2020-08-17 | 2021-07-16 | 武汉众邦银行股份有限公司 | 一种实现跨数据源实时数据流生产消费的方法 |
CN111897878A (zh) * | 2020-08-25 | 2020-11-06 | 中国工商银行股份有限公司 | 主辅数据同步方法及系统 |
CN111897878B (zh) * | 2020-08-25 | 2023-09-29 | 中国工商银行股份有限公司 | 主辅数据同步方法及系统 |
CN112416575A (zh) * | 2020-11-02 | 2021-02-26 | 中关村科学城城市大脑股份有限公司 | 一种用于城市大脑ai计算的算法模型调度系统及方法 |
CN112612799A (zh) * | 2020-12-08 | 2021-04-06 | 福建天泉教育科技有限公司 | 一种数据同步方法及终端 |
CN112783910A (zh) * | 2021-01-29 | 2021-05-11 | 浪潮通用软件有限公司 | 一种基于消息中间件的数据分发方法及系统 |
CN113111129A (zh) * | 2021-04-16 | 2021-07-13 | 挂号网(杭州)科技有限公司 | 数据同步方法、装置、设备及存储介质 |
CN113254466A (zh) * | 2021-06-18 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026774A (zh) | 数据顺序同步方法、装置、计算机设备及存储介质 | |
US8751442B2 (en) | Synchronization associated duplicate data resolution | |
CN109885786B (zh) | 数据缓存处理方法、装置、电子设备及可读存储介质 | |
US10757059B2 (en) | Modification of delivered email content | |
US10489378B2 (en) | Detection and resolution of conflicts in data synchronization | |
CN112214505B (zh) | 数据同步方法、装置、计算机可读存储介质及电子设备 | |
CN110995539A (zh) | 业务系统监控方法、装置及计算机设备 | |
WO2019223136A1 (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
US20070118597A1 (en) | Processing proposed changes to data | |
CN112422368A (zh) | 基于clickhouse的数据库集群监控方法及系统 | |
US20240195862A1 (en) | Preventing duplicative file processing | |
CN111752939A (zh) | 用于多个系统的数据处理方法、装置、计算机系统、介质 | |
US10127270B1 (en) | Transaction processing using a key-value store | |
CN109034668B (zh) | Etl任务调度方法、装置、计算机设备及存储介质 | |
CN110851166A (zh) | 用户无感知的应用程序更新方法、装置及计算机设备 | |
CN110727537B (zh) | 统一处理响应报文的方法、装置、计算机设备及存储介质 | |
CN114218013A (zh) | 搜索方法、装置、电子设备存储介质 | |
CN110266610B (zh) | 流量识别方法、装置、电子设备 | |
CN114020813A (zh) | 基于哈希算法的数据比对方法、装置、设备及存储介质 | |
CN110580200A (zh) | 数据同步方法和装置 | |
CN110851258A (zh) | Api调用方法、装置、计算机设备及存储介质 | |
CN111125715A (zh) | 基于固态硬盘的tcg数据处理加速方法、装置、计算机设备及存储介质 | |
CN111771191A (zh) | 跨域的内联事件处理程序 | |
US11886277B2 (en) | Systems, apparatuses, and methods for assessing recovery viability of backup databases |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200417 |