CN115470302B - 一种基于canal的数据库双向同步方法、介质及设备 - Google Patents

一种基于canal的数据库双向同步方法、介质及设备 Download PDF

Info

Publication number
CN115470302B
CN115470302B CN202211313441.8A CN202211313441A CN115470302B CN 115470302 B CN115470302 B CN 115470302B CN 202211313441 A CN202211313441 A CN 202211313441A CN 115470302 B CN115470302 B CN 115470302B
Authority
CN
China
Prior art keywords
data
target
synchronous
synchronous data
database
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
CN202211313441.8A
Other languages
English (en)
Other versions
CN115470302A (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.)
ISSA Technology Co Ltd
Original Assignee
ISSA 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 ISSA Technology Co Ltd filed Critical ISSA Technology Co Ltd
Priority to CN202211313441.8A priority Critical patent/CN115470302B/zh
Publication of CN115470302A publication Critical patent/CN115470302A/zh
Application granted granted Critical
Publication of CN115470302B publication Critical patent/CN115470302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于canal的数据库双向同步方法、介质及设备,包括:当目标数据库发生变更操作时,根据操作日志生成同步数据。将同步数据发送至对应的专属存储空间中。按照第一预设周期获取同步存储空间中新增的同步数据。将新增的同步数据对应的匹配标识与目标数据库中的每一条数据对应的匹配标识进行匹配处理。以确定新增的同步数据是否为目标同步数据。将目标同步数据同步至目标数据库中。本申请通过中间服务作为桥梁实现两个异构网络的通信连接。另外,每一目标服务器既具有同步数据发送者的角色,同时还具有同步数据接收者的角色。并且会对数据进行匹配处理,以保证双向同步的正常进行,进而提高数据的一致性及完整性。

Description

一种基于canal的数据库双向同步方法、介质及设备
技术领域
本发明涉及数据处理领域,特别是涉及一种基于canal的数据库双向同步方法、介质及设备。
背景技术
随着网络的普及,网民人数数量成几何增长。在各行各业进中为了更加精准有效的进行运作管理,需要保证在两个异构网络中的数据的一致性,由此,对异构网络之间的数据同步有着极高的要求。如在数字化政务场景中,就需要将互联网数据同步进入到政务内网中。而政务内网与互联网就是异构网络,无法进行直通相连。由于,异构网络之间的数据无法进行直接的数据库主从复制同步,由此,数据更加容易形成孤岛,不便于使用。
现有技术中,大部分都是基于数据的单向流通同步,无法实现异构网络之间的数据的同步,进而导致两个异构网络之间的数据的一致性较低,不便于使用。
发明内容
针对上述技术问题,本发明采用的技术方案为:
根据本发明的一个方面,提供了一种基于canal的数据库双向同步方法,应用于第一系统,第一系统包括两个目标服务器及一个中间服务,两个目标服务器之间无法进行直接通信连接,中间服务中配置有每一目标服务器对应的消息存储空间,每一目标服务器均与专属存储空间及同步存储空间通信连接。专属存储空间为目标服务器对应配置的消息存储空间。同步存储空间为与目标服务器进行数据同步的目标服务器对应的消息存储空间。
每一所述目标服务器用于实现下述方法:
当目标数据库发生变更操作时,根据操作日志生成同步数据。同步数据包括数据主键、操作标识及变更后的数据本体。目标数据库为目标服务器中需要进行数据同步的数据库。操作标识包括对目标数据库的删除操作标识、增加操作标识及修改操作标识。
将同步数据发送至对应的专属存储空间中。
按照第一预设周期获取同步存储空间中新增的同步数据。
将新增的同步数据对应的匹配标识与目标数据库中的每一条数据对应的匹配标识进行匹配处理。以确定新增的同步数据是否为目标同步数据。匹配标识包括新增的同步数据的数据主键及变更后的数据本体。
根据目标同步数据中对应的操作标识,将目标同步数据中对应的数据主键及变更后的数据本体同步至目标数据库中。
匹配处理包括如下步骤:
当新增的同步数据的操作标识为删除操作标识,且存在同步数据的匹配标识与目标数据库中的一条数据的匹配标识相同时,将新增的同步数据确定为目标同步数据。
当同步数据的操作标识为修改操作标识或增加操作标识,且同步数据的匹配标识与目标数据库中的每一条数据的匹配标识均不相同时,将新增的同步数据确定为目标同步数据。
根据本发明的第二个方面,提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的一种基于canal的数据库双向同步方法。
根据本发明的第三个方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的一种基于canal的数据库双向同步方法。
本发明至少具有以下有益效果:
本申请中将两个目标服务器分别与中间服务进行通信连接,通过中间服务提供的中间服务来实现数据在两个异构网络中的中转,进而实现两个异构网络的通信连接。在使用中,两个目标服务器分别将要同步的数据发送至中间服务中,然后对应的目标服务器再由中间服务中获取对应的同步数据。
另外,在本申请中每一目标服务器既具有同步数据发送者的角色,同时还具有同步数据接收者的角色。在同步数据发送者的角色中,每当目标服务器中数据库出现变更操作(增、删、改操作)时,即会根据操作日志生成对应的同步数据,并将数据发送至专属存储空间。由此来保证在目标服务器中的数据出现变动时,可以及时将变动情况同步至中间服务中。以便与对应的处于同步数据接收者的角色中的目标服务器进行及时的接收。
在同步数据接收者的角色中,每当目标服务器会从对应的同步存储空间中获取新增的同步数据,并在判断新增的同步数据为目标同步数据后,将新增的同步数据同步至自身的数据库中,以保证两个异构网络中的数据库的一致性。同时,由于目标服务器同时具有同步数据发送者的角色。所以在其数据库出现变动时会再次反向将同步数据发送至中间服务中,以与目标服务器进行再次数据同步。并且由于在每一目标服务器接收同步数据时会对数据进行匹配处理,由此可以避免形成同一条同步数据在两个数据库中反复同步的死循环,以保证双向同步的正常进行。进而可以提高两个异构网络中的数据的一致性、完整性及原子性。,以便于使用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于canal的数据库双向同步方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的一个方面,提供了一种可能的实施例,如图1所示,具体为一种基于canal的数据库双向同步方法,应用于第一系统,第一系统包括两个目标服务器及一个中间服务,两个目标服务器之间无法进行直接通信连接,中间服务中配置有每一目标服务器对应的消息存储空间,每一目标服务器均与专属存储空间及同步存储空间通信连接。专属存储空间为目标服务器(同步数据发送者)对应配置的消息存储空间。同步存储空间为与目标服务器进行数据同步的目标服务器(同步数据接收者)对应的消息存储空间。中间服务可以配置在任一目标服务器或者其他的服务器上。中间服务用于将数据在两个目标服务器之间进行中转,以使两个目标服务器可以进行通信。本实施例中可以使用FTP(File TransferProtocol,文件传输协议)做中间服务。
本申请中将两个目标服务器分别与中间服务进行通信连接,通过中间服务作为桥梁实现两个异构网络的通信连接。在使用中,两个目标服务器分别将要同步的数据发送至中间服务中,然后对应的目标服务器再由中间服务中获取对应的同步数据。
具体的,本申请的中的第一系统可以为现在的政务系统。两个目标服务器可以分别为互联网及政务内网。其具体的应用场景可以为防疫场景。如防疫场景中大量的核酸数据及行程码数据在两个异构网络中的同步问题。通过本实施例的方法可以保证在互联网及政务内网中的核酸数据及行程码数据的一致性。以保证政府库更加准确的对疫情形式进行精准研判。同时,也可以保证每一个公民的核酸数据及行程码数据的准确性,以方便在生产生活中进行使用。
每一目标服务器用于实现下述方法:
步骤S100:当目标数据库发生变更操作时,根据操作日志生成同步数据。同步数据包括数据主键、操作标识及变更后的数据本体。目标数据库为目标服务器中需要进行数据同步的数据库。操作标识包括对目标数据库的删除操作标识、增加操作标识及修改操作标识。
步骤S200:将同步数据发送至对应的专属存储空间中。
步骤S300:按照第一预设周期获取同步存储空间中新增的同步数据。预设周期可以根据具体的使用场景进行确定,通常可以为1-5秒。
步骤S400:将新增的同步数据对应的匹配标识与目标数据库中的每一条数据对应的匹配标识进行匹配处理。以确定新增的同步数据是否为目标同步数据。匹配标识为新增的同步数据的数据主键和变更后的数据本体。
步骤S500:根据目标同步数据中对应的操作标识,将目标同步数据中对应的数据主键及变更后的数据本体同步至目标数据库中。
匹配处理包括如下步骤:
步骤S401:当新增的同步数据的操作标识为删除操作标识,且存在同步数据的匹配标识与目标数据库中的一条数据的匹配标识相同时,将新增的同步数据确定为目标同步数据。
该情况下,步骤S500可以为:对目标数据库中对应的数据主键的数据进行删除操作,以实现数据同步的目的。
步骤S402:当同步数据的操作标识为修改操作标识或增加操作标识,且同步数据的匹配标识与目标数据库中的每一条数据的匹配标识均不相同时,将新增的同步数据确定为目标同步数据。
对应的,当目标同步数据中的对应的操作标识为修改操作标时,步骤S500可以为:将新增的同步数据中的变更后的数据本体替换至目标数据库中对应的数据主键的数据中,以实现数据同步的目的。
当目标同步数据中的对应的操作标识为增加操作标时,步骤S500可以为:将新增的同步数据中的数据主键及变更后的数据本体增加至目标数据库中,以实现数据同步的目的。
进一步的,匹配处理还包括如下步骤:
步骤S403:当同步数据的操作标识为删除操作标识,且同步数据的匹配标识与目标数据库中的每一条数据的匹配标识均不相同时,将目标同步数据确定为空集。
步骤S404:当同步数据的操作标识为修改操作标识或增加操作标识,且匹配标识与目标数据库中的任一条数据的匹配标识相同时,将目标同步数据确定为空集。
具体的,当目标同步数据确定为空集时,则步骤S500可以为:不对目标数据库进行任何处理,以实现数据同步的目的。
在本申请中每一目标服务器既具有同步数据发送者的角色,同时还具有同步数据接收者的角色。在同步数据发送者的角色中,每当目标服务器中数据库出现变更操作(增、删、改操作)时,即会根据操作日志生成对应的同步数据,并将数据发送至专属存储空间。由此来保证在目标服务器中的数据出现变动时,可以及时将变动情况同步至中间服务中。以便与对应的处于同步数据接收者的角色中的目标服务器进行及时的接收。
在同步数据接收者的角色中,每当目标服务器会从对应的同步存储空间中获取新增的同步数据,并在判断新增的同步数据为目标同步数据后,将新增的同步数据同步至自身的数据库中,以保证两个异构网络中的数据库的一致性。同时,由于目标服务器同时具有同步数据发送者的角色。所以在其数据库出现变动时会再次反向将同步数据发送至中间服务中,以与目标服务器进行再次数据同步。并且由于在每一目标服务器接收同步数据时会对数据进行匹配处理,由此可以避免形成同一条同步数据在两个数据库中反复同步的死循环,以保证双向同步的正常进行。进而可以提高两个异构网络中的数据的一致性,以便于使用。
根据本发明的一个可能的实施例,目标数据库为MySQL数据库,目标服务器配置有同步消息队列及Canal模块。Canal模块分别与MySQL数据库及同步消息队列通信连接。
具体的,在两台目标服务器上分别部署MySQL数据库,且MySQL数据库可以采用MariaDB10.5.6这个版本,然后配置My.cnf开启binlog写入功能,配置binlog-format为ROW模式。在上述配置完成后,当对MySQL数据库进行相关操作时,会将对应的操作以操作日志的形式记录下来,以便于Canal模块通过监控操作日志来获取到每一个同步数据。
具体的,在两台目标服务器上分别部署Canal源码包,配置各自对应的MySQL数据库的相关信息,并启动目标服务器上的Canal服务。此时,Canal模块可以通过监控操作日志来及时获取到每一个同步数据,以便及时触发后续的同步程序。
步骤S100:当目标数据库发生变更操作时,根据操作日志生成同步数据,包括:
步骤S101:当MySQL数据库发生变更操作时,生成对应的操作日志。MySQL数据库已开启binlog写入功能。
步骤S102:Canal模块将操作日志转化为同步数据,并将同步数据发送至同步消息队列中。优选的,同步消息队列为kafka消息队列。同步消息队列还可以为TCP消息队列或Pulsar消息队列。
进一步的,目标服务器还配置有Zookeeper模块。Zookeeper模块用于为kafka消息队列提供集群管理服务。通过Zookeeper模块的集群管理,可以使得kafka消息队列可以更加有序高效的处理集群中各个设备发送来的大量的同步数据。
本实施例中,通过使用中间件对同步数据进行存储,由此,可以能够在同步数据大量并发的时候进行正常使用,可以降低由于同步数据并发量大,而导致的系统堵塞,数据丢失等问题。可以更好的适用于数据规模庞大,并发量高的场景中。同时,将同步消息队列设置为kafka消息队列。由于,kafka消息队列具有更高的吞吐量、内置分区、复制和固有的容错能留,并且处理速度更快的特点。所以,可以使得本实施例中的方法更适用于数据规模大且同步实时性要求较高的场景中。
根据本发明的一个可能的实施例,第一目标服务器与第二目标服务器为任意两个进行数据同步的目标服务器。
在步骤S100:根据操作日志生成同步数据之前,方法还包括:
步骤S110:获取第一目标服务器的数据主键集A=(A1,A2,…,Ai,…,Az)。其中,Ai为第一目标服务器的目标数据库中第i条数据对应的数据主键。i=1,2,…,i,…,z。z为第一目标服务器的目标数据库中数据的总条数。
其中,Ai满足下述条件:
Ai=Ai-1+2k,且A1为奇数。其中,k为任意正整数。如k可以为1或2或3或4。
步骤S120:获取第二目标服务器的数据主键集B=(B1,B2,…,Bn,…,By)。其中,Bn为第二目标服务器的目标数据库中第n条数据对应的数据主键。n=1,2,…,i,…,y。y为第二目标服务器的目标数据库中数据的总条数。
其中,Bn满足下述条件:
Bn=Bn-1+2k,且B1为偶数。
本实施例中数据主键的设置方式,可以使进行数据同步的两台目标服务器中的数据主键分别按照奇数及偶数的形式进行变化,由此,进行数据同步时不会出现主键冲突的情况,以便于数据同步的正常进行。
根据本发明的一个可能的实施例,在步骤S200:将同步数据发送至对应的专属存储空间中之前,方法还包括:
步骤S210:当同步数据中包括图像同步数据时,对同步数据进行第一转化处理。图像同步数据包括图像存放路径。
第一转化处理包括如下步骤:
步骤S211:根据图像存放路径获取待同步图像。
步骤S212:对待同步图像进行编码处理,得到待同步图像的base64编码。
步骤S213:将图像存放路径替换为待同步图像的base64编码。
本实施例中,通过将图像数据转化为对应的base64编码,base64编码为字符串,其大小小于待同步图像的大小。由此,可以大幅缩减要进行发送的数据量,由此,可以提高传输速度,进而提高同步速度,同时,也会降低对中间服务中的对应的储存空间的占用。
根据本发明的一个可能的实施例,在步骤S400:将新增的同步数据对应的匹配标识与目标数据库中的每一条数据对应的匹配标识进行匹配处理之前,方法还包括:
步骤S410:当新增的同步数据包括base64编码时,对新增的同步数据进行第二转化处理。
第二转化处理包括如下步骤:
步骤S411:对base64编码进行解码处理,得到对应的待同步图像。
步骤S412:将待同步图像存储至预设空间并生成待同步图像的访问路径。
步骤S413:将新增的同步数据中的base64编码替换为访问路径。
通常图像在数据库中的存储的信息为对应的图像资源的存放路径或者URL(uniform resource locator,统一资源定位系统),也即图像存放路径。但是,本申请中的两个目标服务器为处于异构网络中的两个服务器,也即两个目标服务器可以进行访问的网络一般并不相同。所以在进行图像数据的同步时,如果仅是将图像存放路径或者URL同步至另一台目标服务器的数据库中,另一台目标服务器有极大的可能无法访问该图像存放路径或者URL下的图像资源,由此会使得图像数据无法被同步。
而在本实施例中,在进行图像数据的同步时,要发起数据同步的目标服务器先根据对应的图像存放路径访问到图像,然后再根据现有的编码方式将图像转化成对应的base64编码,然后再将base64编码替换同步数据中的待同步图像的访问路径。此时,同步数据中就相当于直接携带了待同步图像。由此,当要接收同步数据的目标服务器接收到该同步数据后,在进行解码即可得到对应的待同步图像。然后,在按照预设规则将待同步图像存放至指定位置,并生成新的存放路径或URL,也即访问路径。然后将新的存放路径或URL作为要同步的数据内容同步至要接收同步数据的目标服务器的目标数据库中。此时,任一目标服务器均可以根据自身的目标数据库中的访问路径来获得相同的图像,进而实现对应图像数据的同步目标。
根据本发明的一个可能的实施例,中间服务分别与两个目标服务器的光闸通信连接。
本实施例中,通过将中间服务分别与两个目标服务器的光闸进行通信连接,可以保证中间服务在与任一目标服务器进行通信时,数据传输的安全性以及稳定性,进而提高数据的安全性。
本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例还提供一种计算机程序产品,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。

Claims (8)

1.一种基于canal的数据库双向同步方法,其特征在于,应用于第一系统,所述第一系统包括两个目标服务器及一个中间服务,两个所述目标服务器之间无法进行直接通信连接,所述中间服务中配置有每一所述目标服务器对应的消息存储空间,每一所述目标服务器均与专属存储空间及同步存储空间通信连接;所述专属存储空间为所述目标服务器对应配置的消息存储空间;所述同步存储空间为与所述目标服务器进行数据同步的目标服务器对应的消息存储空间;
每一所述目标服务器用于实现下述方法:
当目标数据库发生变更操作时,根据操作日志生成同步数据;所述同步数据包括数据主键、操作标识及变更后的数据本体;所述目标数据库为所述目标服务器中需要进行数据同步的数据库;所述操作标识包括对目标数据库的删除操作标识、增加操作标识及修改操作标识;
将所述同步数据发送至对应的所述专属存储空间中;
按照第一预设周期获取所述同步存储空间中新增的同步数据;
将所述新增的同步数据对应的匹配标识与所述目标数据库中的每一条数据对应的匹配标识进行匹配处理;以确定所述新增的同步数据是否为目标同步数据;所述匹配标识包括所述新增的同步数据的数据主键及变更后的数据本体;
根据所述目标同步数据中对应的所述操作标识,将所述目标同步数据中对应的数据主键及变更后的数据本体同步至所述目标数据库中;
所述匹配处理包括如下步骤:
当所述新增的同步数据的操作标识为删除操作标识,且存在所述同步数据的匹配标识与所述目标数据库中的一条数据的匹配标识相同时,将所述新增的同步数据确定为目标同步数据;
当所述同步数据的操作标识为修改操作标识或增加操作标识,且所述同步数据的匹配标识与所述目标数据库中的每一条数据的匹配标识均不相同时,将所述新增的同步数据确定为目标同步数据;
所述匹配处理还包括如下步骤:
当所述同步数据的操作标识为删除操作标识,且所述同步数据的匹配标识与所述目标数据库中的每一条数据的匹配标识均不相同时,将所述目标同步数据确定为空集;
当所述同步数据的操作标识为修改操作标识或增加操作标识,且所述匹配标识与所述目标数据库中的任一条数据的匹配标识相同时,将所述目标同步数据确定为空集;
所述目标数据库为MySQL数据库,所述目标服务器配置有同步消息队列及Canal模块;所述Canal模块分别与所述MySQL数据库及同步消息队列通信连接;
当目标数据库发生变更操作时,根据操作日志生成同步数据,包括:
当所述MySQL数据库发生变更操作时,生成对应的操作日志;所述MySQL数据库已开启binlog写入功能;
所述Canal模块将所述操作日志转化为同步数据,并将所述同步数据发送至所述同步消息队列中。
2.根据权利要求1所述的方法,其特征在于,所述目标服务器还配置有Zookeeper模块,所述同步消息队列为kafka消息队列;所述Zookeeper模块用于为所述kafka消息队列提供集群管理服务。
3.根据权利要求1所述的方法,其特征在于,第一目标服务器与第二目标服务器为任意两个进行数据同步的所述目标服务器;
在根据操作日志生成同步数据之前,所述方法还包括:
获取第一目标服务器的数据主键集A=(A1,A2,…,Ai,…,Az);其中,Ai为所述第一目标服务器的目标数据库中第i条数据对应的数据主键;i=1,2,…,i,…,z;z为所述第一目标服务器的目标数据库中数据的总条数;
其中,Ai满足下述条件:
Ai=Ai-1+2k,且A1为奇数;其中,k为任意正整数;
获取第二目标服务器的数据主键集B=(B1,B2,…,Bn,…,By);其中,Bn为所述第二目标服务器的目标数据库中第n条数据对应的数据主键;n=1,2,…,i,…,y;y为所述第二目标服务器的目标数据库中数据的总条数;
其中,Bn满足下述条件:
Bn=Bn-1+2k,且B1为偶数。
4.根据权利要求1所述的方法,其特征在于,在将所述同步数据发送至对应的所述专属存储空间中之前,所述方法还包括:
当所述同步数据中包括图像同步数据时,对所述同步数据进行第一转化处理;所述图像同步数据包括图像存放路径;
所述第一转化处理包括如下步骤:
根据所述图像存放路径获取待同步图像;
对所述待同步图像进行编码处理,得到所述待同步图像的base64编码;
将所述图像存放路径替换为所述待同步图像的base64编码。
5.根据权利要求4所述的方法,其特征在于,在将所述新增的同步数据对应的匹配标识与所述目标数据库中的每一条数据对应的匹配标识进行匹配处理之前,所述方法还包括:
当所述新增的同步数据包括所述base64编码时,对所述新增的同步数据进行第二转化处理;
所述第二转化处理包括如下步骤:
对所述base64编码进行解码处理,得到对应的所述待同步图像;
将所述待同步图像存储至预设空间并生成所述待同步图像的访问路径;
将所述新增的同步数据中的所述base64编码替换为所述访问路径。
6.根据权利要求1所述的方法,其特征在于,所述中间服务分别与两个所述目标服务器的光闸通信连接。
7.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据库的双向同步方法。
8.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的数据库的双向同步方法。
CN202211313441.8A 2022-10-25 2022-10-25 一种基于canal的数据库双向同步方法、介质及设备 Active CN115470302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211313441.8A CN115470302B (zh) 2022-10-25 2022-10-25 一种基于canal的数据库双向同步方法、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211313441.8A CN115470302B (zh) 2022-10-25 2022-10-25 一种基于canal的数据库双向同步方法、介质及设备

Publications (2)

Publication Number Publication Date
CN115470302A CN115470302A (zh) 2022-12-13
CN115470302B true CN115470302B (zh) 2023-05-09

Family

ID=84336170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211313441.8A Active CN115470302B (zh) 2022-10-25 2022-10-25 一种基于canal的数据库双向同步方法、介质及设备

Country Status (1)

Country Link
CN (1) CN115470302B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117332008A (zh) * 2023-10-12 2024-01-02 中移互联网有限公司 一种适合读写的缓存双向同步实现方法、装置及设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573006A (zh) * 2017-06-06 2018-09-25 北京金山云网络技术有限公司 跨机房数据同步系统、方法及装置、电子设备
CN109284334A (zh) * 2018-09-05 2019-01-29 拉扎斯网络科技(上海)有限公司 实时数据库同步方法、装置、电子设备及存储介质
CN109960710A (zh) * 2019-01-16 2019-07-02 平安科技(深圳)有限公司 数据库之间的数据同步方法和系统
CN110674213A (zh) * 2019-08-30 2020-01-10 中国人民财产保险股份有限公司 一种数据同步方法及装置
CN112613931A (zh) * 2020-12-25 2021-04-06 航天信息股份有限公司 一种海量开票数据实时存储和大规模并行访问方法及系统
CN113468170A (zh) * 2021-06-02 2021-10-01 上海赛可出行科技服务有限公司 一种自动化实现数据实时同步的系统
CN113704354A (zh) * 2021-08-30 2021-11-26 康键信息技术(深圳)有限公司 一种数据同步方法及装置、计算机设备、存储介质
WO2022126974A1 (zh) * 2020-12-16 2022-06-23 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
CN114706867A (zh) * 2022-03-25 2022-07-05 马上消费金融股份有限公司 数据同步方法、装置、电子设备及存储介质
CN114969206A (zh) * 2022-05-24 2022-08-30 连连银通电子支付有限公司 一种数据处理方法、装置、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573006A (zh) * 2017-06-06 2018-09-25 北京金山云网络技术有限公司 跨机房数据同步系统、方法及装置、电子设备
CN109284334A (zh) * 2018-09-05 2019-01-29 拉扎斯网络科技(上海)有限公司 实时数据库同步方法、装置、电子设备及存储介质
CN109960710A (zh) * 2019-01-16 2019-07-02 平安科技(深圳)有限公司 数据库之间的数据同步方法和系统
CN110674213A (zh) * 2019-08-30 2020-01-10 中国人民财产保险股份有限公司 一种数据同步方法及装置
WO2022126974A1 (zh) * 2020-12-16 2022-06-23 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
CN112613931A (zh) * 2020-12-25 2021-04-06 航天信息股份有限公司 一种海量开票数据实时存储和大规模并行访问方法及系统
CN113468170A (zh) * 2021-06-02 2021-10-01 上海赛可出行科技服务有限公司 一种自动化实现数据实时同步的系统
CN113704354A (zh) * 2021-08-30 2021-11-26 康键信息技术(深圳)有限公司 一种数据同步方法及装置、计算机设备、存储介质
CN114706867A (zh) * 2022-03-25 2022-07-05 马上消费金融股份有限公司 数据同步方法、装置、电子设备及存储介质
CN114969206A (zh) * 2022-05-24 2022-08-30 连连银通电子支付有限公司 一种数据处理方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SUNVE: Distributed Message Middleware towards Heterogeneous Database Synchronization;Xiao Wu et al.;《2018 10th International Conference on Advanced Infocomm Technology》;160-166 *
跨境数据同步系统设计与实现;黄彬航;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-614 *

Also Published As

Publication number Publication date
CN115470302A (zh) 2022-12-13

Similar Documents

Publication Publication Date Title
JP4829316B2 (ja) 中断された同期プロセスに対処してデータを同期させる方法、装置、システム
CN115470302B (zh) 一种基于canal的数据库双向同步方法、介质及设备
CN105450785B (zh) 一种文件传输方法和装置
US20210184878A1 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
CN101044480A (zh) 用于自动检索设备网络中的类似对象的方法、设备和系统
CN110958300B (zh) 一种数据的上传方法、系统、装置、电子设备和计算机可读介质
CN114127690A (zh) 用于协作的合并树
CN110912805B (zh) 消息读取状态的同步方法、终端、服务端及系统
CN114491656A (zh) 区块链网络中的方法和设备
CN113094430A (zh) 一种数据处理方法、装置、设备以及存储介质
CN115098018A (zh) 一种数据写入方法、设备及存储介质
CN108111598B (zh) 云盘数据的下发方法、装置及存储介质
CN111404842B (zh) 数据传输方法、装置及计算机存储介质
CN116643896A (zh) 进程间数据交互方法、系统、电子设备及存储介质
CN115455917A (zh) 文本协同编辑方法和协同编辑装置、电子设备及存储介质
CN116132625A (zh) 交易流程的监管方法和装置
CN114244912B (zh) 数据传输方法、装置、计算机设备及存储介质
CN115550380A (zh) 数据同步方法、装置、设备及存储介质
JP2014209328A (ja) 仮想記憶ゲート・システム
GB2328124A (en) Packet data communications protocol with reduced acknowledgements in a client/server computing system
CN112256700A (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN113742050A (zh) 操作数据对象的方法、装置、计算设备和存储介质
CN116028677B (zh) 数据操作方法以及系统
CN116527691B (zh) 一种船岸数据的同步方法、装置、设备和介质
TWI701557B (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