CN112182003A - 一种数据同步方法和装置 - Google Patents
一种数据同步方法和装置 Download PDFInfo
- Publication number
- CN112182003A CN112182003A CN202011043736.9A CN202011043736A CN112182003A CN 112182003 A CN112182003 A CN 112182003A CN 202011043736 A CN202011043736 A CN 202011043736A CN 112182003 A CN112182003 A CN 112182003A
- Authority
- CN
- China
- Prior art keywords
- synchronization
- task
- source data
- synchronous
- period
- 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 48
- 230000001360 synchronised effect Effects 0.000 claims abstract description 220
- 238000001914 filtration Methods 0.000 claims description 55
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 28
- 230000008859 change Effects 0.000 description 18
- 238000012508 change request Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 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
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- 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
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种数据同步方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收源数据的同步请求,并在任务库中创建或更新该源数据的同步任务,在一个同步周期调度并执行该任务,并在执行成功后将任务状态置为半同步,以在后续同步周期中继续调度并执行该任务,在一个后续一个同步周期内,该任务在半同步状态下被调度并执行成功后,且在该后续同步周期内没有再接收到该源数据的同步请求时,将该任务状态置为已同步。能在高并发环境下保障数据在来源与目的地之间同步一致性以及在多个目的地之间的一致性,减少分布式锁使用,降低锁冲突,降低中间件读写次数,保障数据可以同步到不同类型、不同吞吐量的中间件。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法和装置。
背景技术
在修改原始数据后,通过发送变更消息通知数据同步中心进行数据同步,若通知消息包含完整的数据内容,直接将数据写入到目标数据源中,否则,同步中心查询当前数据最新版本写入到目标数据源。上述方案难以保障分布式环境下的数据一致性,在高并发环境下的数据修改容易造成数据版本不一致问题,并且对于变更非常频繁的数据,有大量的数据同步请求,会造成吞吐量较低的中间件无法跟上吞吐量高的中间件的同步要求。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
在高并发的环境下,难以保障数据在来源与目的地之间或在多个目的地之间的一致性,还会造成吞吐量较低的中间件无法满足同步要求。
发明内容
有鉴于此,本发明实施例提供一种数据同步方法和装置,能够在高并发的环境下保障数据在来源与目的地之间同步的一致性,保障数据在多个目的地之间的一致性,减少分布式锁使用,降低锁冲突,在数据同步周期内,在满足业务诉求的前提下降低中间件读写次数,保障数据可以同步到不同类型、不同吞吐量的中间件。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据同步方法。
一种数据同步方法,包括:接收源数据的同步请求,并在任务库中创建或更新所述源数据的同步任务,其中包括将所述源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务;在一个同步周期调度并执行所述源数据的同步任务,并在执行成功后,将所述源数据的同步任务的状态置为半同步状态,以在所述同步周期的后续同步周期中继续调度并执行所述源数据的同步任务,在所述后续同步周期内,所述源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该后续同步周期内没有再接收到所述源数据的同步请求时,将所述源数据的同步任务的状态置为已同步状态,从而完成所述源数据的数据同步。
可选地,所述在任务库中创建或更新所述源数据的同步任务,包括:根据所述源数据的同步请求中的所述源数据的标识,在任务库中创建或更新所述源数据的同步任务。
可选地,还包括:在过滤周期内对所述源数据的同步请求进行过滤。
可选地,还包括:通过判断存储中间件中是否已存在所述源数据的标识,来判断所述源数据的同步请求是否在所述过滤周期内。
可选地,还包括:延迟一预设的延时调度时间来调度半同步状态下的所述源数据的同步任务,其中所述延时调度时间大于所述过滤周期。
可选地,还包括:根据用于执行所述同步任务的***负载,配置所述同步周期、所述延时调度时间以及所述过滤周期。
可选地,执行所述源数据的同步任务时,检查所述源数据的同步任务的版本号是否有变更,当无变更时,所述源数据的同步任务执行成功。
可选地,在每个同步周期内至多调度并执行一次所述源数据的同步任务,并在执行完成后更新所述源数据的同步任务的状态。
根据本发明实施例的另一方面,提供了一种数据同步装置。
一种数据同步装置,包括:同步任务管理模块,用于接收源数据的同步请求,并在任务库中创建或更新所述源数据的同步任务,其中包括将所述源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务;同步任务调度执行模块,用于在一个同步周期调度并执行所述源数据的同步任务,并在执行成功后,将所述源数据的同步任务的状态置为半同步状态,以在所述同步周期的后续同步周期中继续调度并执行所述源数据的同步任务,在所述后续同步周期内,所述源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该后续同步周期内没有再接收到所述源数据的同步请求时,将所述源数据的同步任务的状态置为已同步状态,从而完成所述源数据的数据同步。
可选地,所述同步任务管理模块还用于:根据所述源数据的同步请求中的所述源数据的标识,在任务库中创建或更新所述源数据的同步任务。
可选地,还包括过滤模块,用于:在过滤周期内对所述源数据的同步请求进行过滤。
可选地,所述同步任务管理模块还用于:通过判断存储中间件中是否已存在所述源数据的标识,来判断所述源数据的同步请求是否在所述过滤周期内。
可选地,所述同步任务调度执行模块包括任务调度子模块,用于:延迟一预设的延时调度时间来调度半同步状态下的所述源数据的同步任务,其中所述延时调度时间大于所述过滤周期。
可选地,还包括配置模块,用于:根据用于执行所述同步任务的***负载,配置所述同步周期、所述延时调度时间以及所述过滤周期。
可选地,所述同步任务调度执行模块包括任务执行子模块,用于执行所述源数据的同步任务时,检查所述源数据的同步任务的版本号是否有变更,当无变更时,所述源数据的同步任务执行成功。
可选地,在每个同步周期内至多调度并执行一次所述源数据的同步任务,并在执行完成后更新所述源数据的同步任务的状态。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的数据同步方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的数据同步方法。
上述发明中的一个实施例具有如下优点或有益效果:接收源数据的同步请求,并在任务库中创建或更新该源数据的同步任务,在一个同步周期调度并执行该任务,并在执行成功后将任务状态置为半同步,以在后续同步周期中继续调度并执行该任务,在一个后续一个同步周期内,该任务在半同步状态下被调度并执行成功后,且在该后续同步周期内没有再接收到该源数据的同步请求时,将该任务状态置为已同步。。能够在高并发的环境下保障数据在来源与目的地之间同步的一致性,保障数据在多个目的地之间的一致性,减少分布式锁使用,降低锁冲突,在数据同步周期内,在满足业务诉求的前提下尽可能地将同步操作进行合并,降低中间件读写次数,保障数据可以同步到不同类型、不同吞吐量的中间件。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的数据同步方法的主要步骤示意图;
图2是根据本发明一个实施例的***结构示意图;
图3是根据本发明一个实施例的数据同步示意图;
图4是根据本发明一个实施例的同步任务设计示意图;
图5是根据本发明一个实施例的任务执行流程示意图;
图6是根据本发明一个实施例的防洪过滤流程示意图;
图7是根据本发明一个实施例的任务调度执行机制示意图;
图8是根据本发明一个实施例的数据同步装置的主要模块示意图;
图9是本发明实施例可以应用于其中的示例性***架构图;
图10是适于用来实现本发明实施例的服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一个实施例的数据同步方法的主要步骤示意图。
如图1所示,本发明一个实施例的数据同步方法主要包括如下的步骤S101至步骤S102。
步骤S101:接收源数据的同步请求,并在任务库中创建或更新源数据的同步任务,其中包括将源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务。
步骤S102:在一个同步周期调度并执行源数据的同步任务,并在执行成功后,将源数据的同步任务的状态置为半同步状态,以在同步周期的后续同步周期中继续调度并执行源数据的同步任务,在后续同步周期内,源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该后续同步周期内没有再接收到源数据的同步请求时,将源数据的同步任务的状态置为已同步状态,从而完成源数据的数据同步。
在任务库中创建或更新源数据的同步任务,具体可以包括:根据源数据的同步请求中的源数据的标识,在任务库中创建或更新源数据的同步任务。
本实施例还可以在过滤周期内对源数据的同步请求进行过滤。
具体可以通过判断存储中间件中是否已存在源数据的标识,来判断源数据的同步请求是否在过滤周期内。
本实施例可以延迟一预设的延时调度时间来调度半同步状态下的源数据的同步任务,其中延时调度时间大于过滤周期。
可以根据用于执行同步任务的***负载,配置同步周期、延时调度时间以及过滤周期。
执行源数据的同步任务时,还可以检查源数据的同步任务的版本号是否有变更,当无变更时,源数据的同步任务执行成功。
在每个同步周期内至多调度并执行一次源数据的同步任务,并在执行完成后更新源数据的同步任务的状态。
本发明另一个实施例的数据同步流程主要包括以下步骤:
接收源数据的同步请求,并在任务库中创建或更新源数据的同步任务,其中包括将源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务;
如果该源数据的同步任务在当前同步周期内尚未执行,则调度并执行该源数据的同步任务,并在执行成功后,将该源数据的同步任务的状态置为半同步状态,以在后续的同步周期中继续调度并执行该源数据的同步任务,如果在后续的一个同步周期内,该源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该同步周期内没有再接收到该源数据的同步请求,则将该源数据的同步任务的状态置为已同步状态,从而完成该源数据的数据同步。
其中,源数据是指需要同步的数据,源数据位于第一数据源,当源数据发生修改等变更后,需要同步到第二数据源,第一数据源为源数据的来源,第二数据源为源数据的一个目的地。通过执行同步任务来实现数据的同步。同步任务在任务库中创建、保存、更新。
同步周期是预先设定的时间周期,如果同步任务(简称任务)在一个同步周期内没有完成源数据的数据同步,则进入下一个同步周期。一个同步任务在一个同步周期内至多调度并执行一次。在以往的同步任务中,一般只有两种状态:待同步(待执行)、已同步(已执行),本申请在这两种状态之间引入新的状态:半同步(半执行)状态。下面分别对该三种状态进行简要介绍。
待同步:任务处于待同步状态时,可以立即被调度执行,例如可以立即进行数据同步。待同步状态下的任务执行完成后进入的下一个状态为半同步状态。
半同步:处于半同步状态的任务不能立即进行调度,必须要做延时调度处理。
已同步:数据已经同步完成,当前没有新的变更请求。
待同步和半同步两种状态可以相互转换,具体下文还将进一步对上述三种状态进行详细介绍。
在待同步状态下的同步任务也可称为待同步任务,在半同步状态下的同步任务也可称为半同步任务。
在一个实施例中,在接收源数据的同步请求之后,且在任务库中创建或更新源数据的同步任务之前,还包括:从源数据的同步请求中得到源数据的标识,并判断存储中间件中是否已存在源数据的标识。
源数据的标识用于唯一标识该源数据,例如关于商品的源数据,其标识可以为商品的SKU ID(库存保有单位标识,例如SKU的编码);关于订单的源数据,其标识可以为订单号;关于购物车的源数据,其标识可以为用户PIN(Personal Identification Number,用户个人识别号码),等等。
存储中间件例如Redis(Remote Dictionary Server,远程字典服务)等中间件。
在任务库中创建或更新源数据的同步任务,可以包括:在存储中间件中不存在源数据的标识的情况下,根据从源数据的同步请求中得到的源数据的标识,在任务库中查找是否已存在源数据的同步任务,若存在,则更新该源数据的同步任务,否则,创建该源数据的同步任务。
在一个实施例中,在存储中间件中不存在源数据的标识的情况下,在更新或创建源数据的同步任务之后,还可以以源数据的标识为存储中间件的键,将源数据的标识写入存储中间件,并设置键的过期时间。
上文已经介绍了本发明实施例引入的任务的半同步状态,处于半同步状态的任务不能立即进行调度,必须要做延时调度处理。因此,需要延迟一预设的延时调度时间来调度半同步状态下的源数据的同步任务,其中延时调度时间大于过滤周期,过滤周期根据存储中间件中为源数据的标识的键的过期时间确定。
在一个实施例中,可以根据用于执行同步任务的***负载数量,配置同步周期、延时调度时间以及键的过期时间。
在一个实施例中,在存储中间件中存在源数据的标识的情况下,将接收的源数据的同步请求过滤,以不执行在任务库中创建或更新源数据的同步任务的操作。
在一个实施例中,创建源数据的同步任务还包括:将源数据的同步任务的版本号置为初始版本号。以及,更新源数据的同步任务还包括:将源数据的同步任务的版本号自增一预设值。初始版本号可以预先设置为一个数值,版本号自增的预设值通常设置为1,本发明对此不作限定。
在一个实施例中,执行源数据的同步任务,包括:将源数据从所在的第一数据源读取出,并写入第二数据源,其中,在写入第二数据源时,检查执行该写入操作的源数据的同步任务的版本号是否有变更,若无变更,则源数据的同步任务执行成功,若有变更,则源数据的同步任务执行失败。
上文已经介绍,一个同步任务在一个同步周期内至多调度并执行一次。因此,在每个同步周期内至多调度并执行一次源数据的同步任务,如果源数据的同步任务在一个同步周期内已经执行,但尚未完成该源数据的数据同步,则在该同步周期的下一同步周期继续调度并执行。
在一个实施例中,如果在后续的一个同步周期内,源数据的同步任务在半同步状态下被调度并执行成功之后,在该同步周期内又接收到源数据的同步请求,则返回到在任务库中创建或更新源数据的同步任务的步骤。
本发明实施例将同步请求合并,使得高吞吐量数据源可向吞吐量低的中间件进行数据同步,并且在半同步模式下延时冗余同步以保障高并发环境下分布式数据同步一致性,使得半同步机制通过延时执行机制补齐可能丢弃的更新操作,还可根据***负载对过滤周期、同步周期、延时调度时间等参数灵活配置。
图2是根据本发明一个实施例的***结构示意图。
如图2所示,第一数据源是本发明实施例的源数据的来源,第二数据源是本发明实施例的源数据要同步的一个目的地。第一数据源可以是MySQL(一种关系型数据库管理***)Elastic Search(一种基于Lucene的搜索服务器)、Hbase(一种分布式的、面向列的开源数据库)等,第二数据源可以是Elastic Search、Hbase、Redis等。本发明实施例的数据同步方法在同步中心中执行,同步中心具有变更请求合并(变更请求又称同步请求或数据变更通知)、任务调度等功能。
在一定时间内,同一条数据的变更可能会非常频繁,同步中心会收到很多的同步请求,产生大量同步任务,从而造成同步任务积压;吞吐量相对较低的中间件(如ES(即Elastic Search)、Hbase)无法满足吞吐量高的数据源(如Redis)的同步请求。本发明实施例中,在一个同步周期内,变更的数据(源数据)应当有且仅有一次同步操作,超过一次的同步应当被视为冗余的不必要的同步操作。
为了解决数据频繁变更带来的同步问题,降低不必要的冗余同步操作,本发明实施例将同步任务进行合并,即,将同步周期内同一条数据的多次变更请求进行合并,以降低同步中心***压力,确保同步中心可以支持多种类型吞吐量的中间件设备进行数据同步。
图3是根据本发明一个实施例的数据同步示意图。如图3所示,数据变更通知:w1、w2、w3、w4、w5、……、wx、wx+1;
同步周期为m(m可配置),当前时间为t0。那么:
第1次同步时间为:t1=t0+m
第2次同步时间为:t2=t1+m=(t0+m)+m=t0+2m
第3次同步时间为:t3=t2+m=(t0+2m)+m=t0+3m
……
第n次同步时间为:tn=t0+nm
第n+1次同步时间为:tn+1=t0+(n+1)m
在一个同步周期m内,源数据会有多次变更操作,会触发多次数据变更通知w。无论源数据变更多少次,在一个同步周期内都只需同步一次,即:按同步周期进行同步,在一个同步周期内调度执行该源数据的同步任务的次数不会超过一次,如果源数据的同步任务在一个同步周期内已经执行,但尚未完成数据同步,则在该同步周期的下一同步周期继续调度并执行,例如,假设某个源数据的同步任务在t0~t1的同步周期内已经执行,但尚未完成数据同步,则在t1~t2的同步周期继续调度并执行。
下面介绍本发明实施例的同步任务设计,图4是根据本发明一个实施例的同步任务设计示意图,如图4,同步任务的属性包括但不限于任务编号、状态和版本。
将源数据的变更请求落库为同步任务(简称任务),通过任务周期性调度完成数据同步操作。本发明实施例中任务状态包括:待同步(状态=0)、半同步(状态=1)、已同步(状态=2)。
一个同步任务有至少一个任务版本。任务在执行的同时可能会收到变更请求,如果不加以版本控制,任务执行完成后会将任务变更为下一状态,从而导致更新请求丢失。由于本发明实施例对任务设置版本,在执行源数据的同步任务时,将源数据从所在的第一数据源读取出,并写入第二数据源,在写入第二数据源时,同步中心的服务器可以检查执行写入操作的源数据的同步任务的版本号是否有变更,若无变更,则该同步任务执行成功,若有变更,则该同步任务执行失败。
图5是根据本发明一个实施例的任务执行流程示意图。如图5所示,在一个实施例中,在收到源数据的变更请求(变更通知)①后,进行防洪过滤②(关于防洪过滤将在下文详细介绍),如果变更请求被过滤掉(即图中②对应“是”的分支),则结束流程;如果变更请求未被过滤掉(即图中②对应“否”的分支),则判断对应的任务在任务库中是否存在③,若任务存在,则更新任务④,即:将任务状态更新为待同步(状态=0),并自增任务版本(防止此时正在执行的任务完成后将状态更新为完成,导致变更请求丢失);若任务不存在,则新增待同步任务(即创建任务)⑤,然后判断是否同步执行任务⑥,如果同步执行,则立即执行数据同步⑦,如果不同步执行,则当前流程结束。
从图5的流程可知,本发明实施例只在源数据的同步任务不存在的情况下才会新建该源数据的同步任务,如果该源数据的同步任务已经存在,则只将该源数据的同步任务自增版本,从而对于同一源数据的多次变更请求,在任务库中至多只有一个同步任务,任务自增版本的过程即任务合并的过程(如图5中虚线框所示)。
此外,同步任务的执行可选择同步执行或者异步执行两种方式,当选择同步执行时,立即开始数据同步;当选择异步执行时,则任务进入异步等待队列,通过任务调度机制进行执行。
下面详细介绍本发明实施例的防洪过滤机制。由于变更请求量可能会非常大,以至于底层任务库无法满足落库请求,因此本发明一个实施例引入防洪过滤机制来做消峰处理。防洪过滤机制可以借助同样吞吐量高的Redis实现,通过判断指定key是否存在来做过滤处理。
图6是根据本发明一个实施例的防洪过滤流程示意图。如图6所示,在接收源数据的同步请求(即更新请求)之后,先判断Redis是否存在为该源数据的标识的业务key(键),若key不存在,则在Redis中设置该key,key为该源数据的标识,并指定key的过期时间为n(n表示一段时长),n即为过滤周期,此时返回false,表明该同步请求未被过滤,然后执行任务合并的后续步骤,即图5的③至⑦步骤;若key存在,则表明当前更新请求在过滤周期内,那么,返回true,将该同步请求过滤掉,无需再次进行数据同步通知,即不执行在任务库中创建或更新该源数据的同步任务的操作。过滤周期引入后,会导致在最后一个过滤周期内的更新请求丢失,因此必须在任务调度期间引入半同步模式,将丢失的更新请求通过延时执行的方式进行补齐。
半同步模式即任务在半同步状态下调度的模式,上文已经介绍了本发明实施例的任务状态可以有三种:待同步、半同步、已同步,其中,任务处于待同步状态时,可以立即被调度执行;处于半同步状态的任务不能立即进行调度,必须要做延时调度处理,延迟的目的就是要将过滤周期n内可能丢弃的更新请求补齐,因此必须延迟一个延时调度时间y(y表示预设的一个时长,且y>n)后进行调度执行,延时调度时间必须大于过滤周期。
本发明实施例采用半同步策略通过在最后冗余一次同步操作,以确保数据的最终一致性,可以用于大多数的数据同步场景,甚至在这些场景下可以移除掉分布式锁,从而减少高并发环境下的锁冲突。
同步中心在进行任务调度时,需要查找处于“待同步”状态或处于“半同步”状态,且最后执行时间距离当前已超过“过滤周期”的任务来调度并执行,任务执行后更新任务时,在满足版本控制的前提下将任务进入下一个状态。
下面结合上述各实施例,介绍本发明一个实施例的数据同步流程。第一数据源对源数据变更后,向同步中心发送源数据的同步请求,同步中心接收到该源数据的同步请求后,在Redis中查找为该源数据标识的key,若Redis中存在该key,表示当前仍在该key的过滤周期内(即key存在且未过期),则将该同步请求过滤,而不进行落库;若Redis中不存在该key,则进一步判断任务库中是否有对应该源数据的同步任务。
如果任务库中有该源数据的同步任务,则更新该同步任务,更新操作包括:将任务的版本号自增1,并将任务的状态置为0(即置为待同步);如果任务库中没有该源数据的同步任务,则创建该同步任务,创建操作包括:将任务的版本号设置为初始版本号,并将任务的状态置为0(即置为待同步)。
在任务库中有该源数据的同步任务的情况下,该同步任务当前有三种可能的情况:情况一:在当前同步周期内可能尚未执行过,任务状态为0(待同步);情况二:在当前同步周期内已经执行过,任务状态为1(半同步),但本同步周期内不会再调度并执行该同步任务了(因为一个同步任务在一个同步周期内只能执行一次),而只能再下一同步周期再调度执行;情况三:在当前同步周期内已经执行过,任务状态为0(待同步),出现情况三的情形例如,在当前同步周期内任务在待同步状态下被调度并执行成功,该任务被置为半同步状态,之后,在该同步周期内又收到该源数据的同步请求,并执行了该同步任务的更新,即将该任务的状态又置为了待同步状态。因此,本发明实施例的同步任务的待同步和半同步两种状态是可以相互转换的。
对于上述情况二,则更新任务状态即:将任务的状态由1置为0(半同步状态转换为待同步状态);对于上述情况一和情况二,则更新任务状态即:将状态由0置为0(维持待同步状态);
在创建或更新完任务之后,如果该源数据的同步任务在当前同步周期内已经执行过,则需等下一同步周期再调度执行。如果在当前同步周期内没有执行过,则在当前同步周期内被调度执行,并在执行完后将任务状态置为1(半同步状态)。
根据上述介绍,可知,进入上述当前同步周期的下一同步周期的该源数据的任务状态可能是待同步,也可能是半同步,为便于表述,以下将上述的当前同步周期记作周期I,将上述的当前同步周期的下一同步周期记作周期II。其中,若进入周期II的任务的状态是待同步,则在周期II对该任务调度并执行成功后,将该任务状态置为半同步;若进入周期II的任务的状态是半同步,则延迟调度并执行该半同步任务,使得在周期II内调度并执行该半同步任务的时间与该任务被置为半同步状态时的时间差大于过滤周期n。如果在该任务被置为半同步之后,且在距离该任务被置为半同步状态时的时间差等于过滤周期n的时间点之后,且在该待同步任务在本周期II内被调度并执行之前,又接收到该源数据的新的同步请求,那么此时由于过滤周期结束,Redis中为该源数据标识的key已过期被清除,那么在Redis不存在该源数据标识的key,则再将该源数据标识作为key,写入Redis,而由于根据该源数据的标识可以查找到该半同步任务在任务库中存在,那么更新该任务,即将该任务状态由半同步再置为待同步,并将任务版本号增加1,后续待在周期II内调度该任务之后,再将该任务状态由待同步置为半同步,由于在周期II内任务执行过一次,但尚未完成数据同步,那么,在周期II的下一同步周期(记作周期III)再继续调度并执行,以此类推。
如果在某一同步周期X内,半同步任务调度执行之后,且直到该同步周期X结束,同步中心都没有再接收到该源数据的同步请求,那么在该周期X结束后,则将该任务状态置为2(已同步),完成整个数据同步流程。
如果在某个同步周期Y内,半同步任务执行之后,该同步周期Y结束之前,同步中心又接收到该源数据的同步请求,参照上文介绍,该半同步任务的状态则又变成待同步状态,待同步周期Y的下一同步周期再调度执行,进入同步周期的任务的状态是待同步的情况上文已经介绍,此处不再赘述。
本发明实施例的同步任务在执行时,都是从第一数据源(源数据的来源)拉取最新的该源数据进行同步,由于本发明实施例的半同步任务延迟调度并执行,且延迟调度时间大于过滤周期,使得半同步任务必然在过滤周期之外被调度执行,从而即使最近的一个过滤周期内一些同步请求被过滤掉,由于半同步任务被调度执行时会从第一数据源拉取最新的该源数据进行同步,也会将过滤掉的那部分同步请求补齐,即同步到第二数据源(要同步的一个目的地)的数据仍然是最新数据,而不存在数据丢失的情况。
图7是根据本发明一个实施例的任务调度执行机制示意图。如图7所示,本发明实施例的待同步任务在执行第一次同步操作后,状态变为半同步状态,半同步任务在执行第二次操作之后,状态变为已同步状态。由于同一任务在一个同步周期内只能被调度并执行一次,因此,上述第一次同步操作(对应图7的一次同步)和第二次同步操作(对应图7的二次同步)是在不同的同步周期内执行的。并且,待同步任务是可以立即执行的,而半同步任务则要延时执行,有上文对此已经介绍,此处不再赘述。
图8是根据本发明一个实施例的数据同步装置的主要模块示意图。
如图8所示,本发明一个实施例的数据同步装置800主要包括:同步任务管理模块801、同步任务调度执行模块802。
同步任务管理模块801,用于接收源数据的同步请求,并在任务库中创建或更新所述源数据的同步任务,其中包括将所述源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务.
同步任务调度执行模块802,用于在一个同步周期调度并执行所述源数据的同步任务,并在执行成功后,将所述源数据的同步任务的状态置为半同步状态,以在所述同步周期的后续同步周期中继续调度并执行所述源数据的同步任务,在所述后续同步周期内,所述源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该后续同步周期内没有再接收到所述源数据的同步请求时,将所述源数据的同步任务的状态置为已同步状态,从而完成所述源数据的数据同步。
同步任务管理模块801具体可以用于:根据所述源数据的同步请求中的所述源数据的标识,在任务库中创建或更新所述源数据的同步任务。
数据同步装置800还可以包括过滤模块,用于:在过滤周期内对所述源数据的同步请求进行过滤。
同步任务管理模块801具体可以用于:通过判断存储中间件中是否已存在所述源数据的标识,来判断所述源数据的同步请求是否在所述过滤周期内。
同步任务调度执行模块802可以包括任务调度子模块,用于:延迟一预设的延时调度时间来调度半同步状态下的所述源数据的同步任务,其中所述延时调度时间大于所述过滤周期。
数据同步装置800还可以包括配置模块,用于:根据用于执行所述同步任务的***负载,配置所述同步周期、所述延时调度时间以及所述过滤周期。
同步任务调度执行模块802可以包括任务执行子模块,用于执行所述源数据的同步任务时,检查所述源数据的同步任务的版本号是否有变更,当无变更时,所述源数据的同步任务执行成功。
在每个同步周期内至多调度并执行一次所述源数据的同步任务,并在执行完成后更新所述源数据的同步任务的状态。
本发明另一个实施例的数据同步装置包括:同步任务管理模块、同步任务调度执行模块、过滤模块、配置模块。
同步任务管理模块,用于接收源数据的同步请求,并在任务库中创建或更新源数据的同步任务,其中包括将源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务。同步任务调度执行模块,用于如果源数据的同步任务在当前同步周期内尚未执行,则调度并执行源数据的同步任务,并在执行成功后,将源数据的同步任务的状态置为半同步状态,以在后续的同步周期中继续调度并执行源数据的同步任务,如果在后续的一个同步周期内,源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该同步周期内没有再接收到源数据的同步请求,则将源数据的同步任务的状态置为已同步状态,从而完成源数据的数据同步。
过滤模块,具体可以用于:从源数据的同步请求中得到源数据的标识,并判断存储中间件中是否已存在源数据的标识。
同步任务管理模块具体可以用于:在存储中间件中不存在源数据的标识的情况下,根据从源数据的同步请求中得到的源数据的标识,在任务库中查找是否已存在源数据的同步任务,若存在,则更新源数据的同步任务,否则,创建源数据的同步任务。
在存储中间件中不存在源数据的标识的情况下,在同步任务管理模块更新或创建源数据的同步任务之后,过滤模块还用于:以源数据的标识为存储中间件的键,将源数据的标识写入存储中间件,并设置键的过期时间。
过滤模块还用于:在存储中间件中存在源数据的标识的情况下,将接收的源数据的同步请求过滤,以不执行在任务库中创建或更新源数据的同步任务的操作。
同步任务调度执行模块可以包括任务调度子模块,用于:延迟一预设的延时调度时间来调度半同步状态下的源数据的同步任务,其中延时调度时间大于过滤周期,过滤周期根据存储中间件中为源数据的标识的键的过期时间确定。
配置模块,用于:根据用于执行同步任务的***负载数量,配置同步周期、延时调度时间以及键的过期时间。
创建源数据的同步任务,还可以包括:将源数据的同步任务的版本号置为初始版本号。
更新源数据的同步任务,还可以包括:将源数据的同步任务的版本号自增一预设值,例如增加1。
同步任务调度执行模块还包括任务执行子模块,用于:将源数据从所在的第一数据源读取出,并写入第二数据源,其中,在写入第二数据源时,检查执行写入操作的源数据的同步任务的版本号是否有变更,若无变更,则源数据的同步任务执行成功,若有变更,则源数据的同步任务执行失败。
在每个同步周期内至多调度并执行一次源数据的同步任务,如果源数据的同步任务在一个同步周期内已经执行,但尚未完成数据同步,则在该同步周期的下一同步周期继续调度并执行。
同步任务调度执行模块还用于:如果在后续的一个同步周期内,源数据的同步任务在半同步状态下被调度并执行成功之后,在该同步周期内又接收到源数据的同步请求,则返回到上述在任务库中创建或更新源数据的同步任务的步骤。
另外,在本发明实施例中所述数据同步装置的具体实施内容,在上面所述数据同步方法中已经详细说明了,故在此重复内容不再说明。
图9示出了可以应用本发明实施例的数据同步方法或数据同步装置的示例性***架构900。
如图9所示,***架构900可以包括终端设备901、902、903,网络904和服务器905。网络904用以在终端设备901、902、903和服务器905之间提供通信链路的介质。网络904可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备901、902、903通过网络904与服务器905交互,以接收或发送消息等。终端设备901、902、903上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备901、902、903可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器905可以是提供各种服务的服务器,例如对用户利用终端设备901、902、903所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据同步方法一般由服务器905执行,相应地,数据同步装置一般设置于服务器905中。
应该理解,图9中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图10,其示出了适于用来实现本申请实施例的服务器的计算机***1000的结构示意图。图10示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机***1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有***1000操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本发明公开的实施例,上文参考主要步骤示意图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤示意图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤示意图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,主要步骤示意图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或主要步骤示意图中的每个方框、以及框图或主要步骤示意图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括同步任务管理模块、同步任务调度执行模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,同步任务管理模块还可以被描述为“用于接收源数据的同步请求,并在任务库中创建或更新源数据的同步任务的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收源数据的同步请求,并在任务库中创建或更新所述源数据的同步任务,其中包括将所述源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务;在一个同步周期调度并执行所述源数据的同步任务,并在执行成功后,将所述源数据的同步任务的状态置为半同步状态,以在所述同步周期的后续同步周期中继续调度并执行所述源数据的同步任务,在所述后续同步周期内,所述源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该后续同步周期内没有再接收到所述源数据的同步请求时,将所述源数据的同步任务的状态置为已同步状态,从而完成所述源数据的数据同步。
根据本发明实施例的技术方案,接收源数据的同步请求,并在任务库中创建或更新该源数据的同步任务,在一个同步周期调度并执行该任务,并在执行成功后将任务状态置为半同步,以在后续同步周期中继续调度并执行该任务,在一个后续一个同步周期内,该任务在半同步状态下被调度并执行成功后,且在该后续同步周期内没有再接收到该源数据的同步请求时,将该任务状态置为已同步,从而完成该源数据的数据同步。能够在高并发的环境下保障数据在来源与目的地之间同步的一致性,保障数据在多个目的地之间的一致性,减少分布式锁使用,降低锁冲突,在数据同步周期内,在满足业务诉求的前提下尽可能地将同步操作进行合并,降低中间件读写次数,保障数据可以同步到不同类型、不同吞吐量的中间件。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
接收源数据的同步请求,并在任务库中创建或更新所述源数据的同步任务,其中包括将所述源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务;
在一个同步周期调度并执行所述源数据的同步任务,并在执行成功后,将所述源数据的同步任务的状态置为半同步状态,以在所述同步周期的后续同步周期中继续调度并执行所述源数据的同步任务,在所述后续同步周期内,所述源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该后续同步周期内没有再接收到所述源数据的同步请求时,将所述源数据的同步任务的状态置为已同步状态,从而完成所述源数据的数据同步。
2.根据权利要求1所述的方法,其特征在于,
所述在任务库中创建或更新所述源数据的同步任务,包括:
根据所述源数据的同步请求中的所述源数据的标识,在任务库中创建或更新所述源数据的同步任务。
3.根据权利要求1所述的方法,其特征在于,还包括:
在过滤周期内对所述源数据的同步请求进行过滤,通过判断存储中间件中是否已存在所述源数据的标识,来判断所述源数据的同步请求是否在所述过滤周期内。
4.根据权利要求3所述的方法,其特征在于,还包括:
延迟一预设的延时调度时间来调度半同步状态下的所述源数据的同步任务,其中所述延时调度时间大于所述过滤周期。
5.根据权利要求4所述的方法,其特征在于,还包括:
根据用于执行所述同步任务的***负载,配置所述同步周期、所述延时调度时间以及所述过滤周期。
6.根据权利要求1所述的方法,其特征在于,
执行所述源数据的同步任务时,检查所述源数据的同步任务的版本号是否有变更,当无变更时,所述源数据的同步任务执行成功。
7.根据权利要求1所述的方法,其特征在于,在每个同步周期内至多调度并执行一次所述源数据的同步任务,并在执行完成后更新所述源数据的同步任务的状态。
8.一种数据同步装置,其特征在于,包括:
同步任务管理模块,用于接收源数据的同步请求,并在任务库中创建或更新所述源数据的同步任务,其中包括将所述源数据的同步任务的状态置为待同步状态,同一源数据的各次同步请求对应同一个同步任务;
同步任务调度执行模块,用于在一个同步周期调度并执行所述源数据的同步任务,并在执行成功后,将所述源数据的同步任务的状态置为半同步状态,以在所述同步周期的后续同步周期中继续调度并执行所述源数据的同步任务,在所述后续同步周期内,所述源数据的同步任务在半同步状态下被调度并执行成功之后,并且在该后续同步周期内没有再接收到所述源数据的同步请求时,将所述源数据的同步任务的状态置为已同步状态,从而完成所述源数据的数据同步。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011043736.9A CN112182003A (zh) | 2020-09-28 | 2020-09-28 | 一种数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011043736.9A CN112182003A (zh) | 2020-09-28 | 2020-09-28 | 一种数据同步方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112182003A true CN112182003A (zh) | 2021-01-05 |
Family
ID=73947175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011043736.9A Pending CN112182003A (zh) | 2020-09-28 | 2020-09-28 | 一种数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182003A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166754A (zh) * | 2023-04-20 | 2023-05-26 | 梅州客商银行股份有限公司 | 半实时数据批量同步的方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145312A1 (en) * | 2009-04-14 | 2011-06-16 | Electron Database Corporation | Server architecture for multi-core systems |
CN107729366A (zh) * | 2017-09-08 | 2018-02-23 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步*** |
CN110716748A (zh) * | 2019-09-24 | 2020-01-21 | 深圳中集智能科技有限公司 | 业务处理方法、装置、计算机可读介质及电子设备 |
CN111414372A (zh) * | 2020-03-10 | 2020-07-14 | 广州市百果园信息技术有限公司 | 数据同步方法、装置、***、设备和存储介质 |
-
2020
- 2020-09-28 CN CN202011043736.9A patent/CN112182003A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145312A1 (en) * | 2009-04-14 | 2011-06-16 | Electron Database Corporation | Server architecture for multi-core systems |
CN107729366A (zh) * | 2017-09-08 | 2018-02-23 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步*** |
CN110716748A (zh) * | 2019-09-24 | 2020-01-21 | 深圳中集智能科技有限公司 | 业务处理方法、装置、计算机可读介质及电子设备 |
CN111414372A (zh) * | 2020-03-10 | 2020-07-14 | 广州市百果园信息技术有限公司 | 数据同步方法、装置、***、设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166754A (zh) * | 2023-04-20 | 2023-05-26 | 梅州客商银行股份有限公司 | 半实时数据批量同步的方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491801B (zh) | 微服务访问调度方法、装置、介质及电子设备 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN113127564B (zh) | 一种参数同步方法和装置 | |
CN110837409A (zh) | 一种定时执行任务的方法和*** | |
CN109960212B (zh) | 任务发送方法和装置 | |
CN111126948A (zh) | 用于审批流程的处理方法和装置 | |
CN113672357A (zh) | 任务调度的方法、装置和*** | |
CN111831461A (zh) | 一种处理业务流程的方法和装置 | |
CN113076304A (zh) | 一种分布式版本管理方法、装置和*** | |
CN110389976B (zh) | 一种多接口数据的调度方法和装置 | |
CN113760924B (zh) | 一种分布式事务的处理方法和装置 | |
CN112182003A (zh) | 一种数据同步方法和装置 | |
CN113051055A (zh) | 一种任务处理方法和装置 | |
CN109284177B (zh) | 一种数据更新方法和装置 | |
CN112711485A (zh) | 一种消息处理方法和装置 | |
CN111008202A (zh) | 分布式事务处理方法和框架 | |
CN111984686A (zh) | 一种数据处理的方法和装置 | |
CN111177109A (zh) | 一种删除过期键的方法和装置 | |
CN114553959A (zh) | 基于态势感知的云原生服务网格配置按需下发方法及应用 | |
CN113760487B (zh) | 一种业务处理方法和装置 | |
CN113486032A (zh) | 日期切换方法、装置、电子设备以及计算机可读介质 | |
CN114490050A (zh) | 一种数据同步方法和装置 | |
CN113742376A (zh) | 一种同步数据的方法、第一服务器以及同步数据的*** | |
CN113760861A (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 |