CN116015947A - 基于canal框架的数据传输系统、方法、设备及介质 - Google Patents
基于canal框架的数据传输系统、方法、设备及介质 Download PDFInfo
- Publication number
- CN116015947A CN116015947A CN202211736637.8A CN202211736637A CN116015947A CN 116015947 A CN116015947 A CN 116015947A CN 202211736637 A CN202211736637 A CN 202211736637A CN 116015947 A CN116015947 A CN 116015947A
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- queue
- encrypted
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种基于canal框架的数据传输系统、方法、设备及介质,涉及数据处理技术领域,其中,该系统包括:第一数据库端,包括:秘钥获取模块,获取公钥‑私钥对,将公钥发送给第二数据库端;第二数据库端,包括:加密模块,采用公钥对待传输数据加密,并通过canal服务器将加密后的待传输数据输入第二队列;数据发送模块,将第二队列中加密后的待传输数据发送给第一数据库端;第一数据库端,包括:数据接收模块,接收来自第二数据库端的加密后的待传输数据,将加密后的待传输数据输入第一队列;解密模块,通过canal适配器从第一队列中读取加密后的待传输数据,采用私钥对加密后的待传输数据进行解密,得到待传输数据。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于canal框架的数据传输系统、方法、设备及介质。
背景技术
由于一些业务的发展需求,往往需要在两地分别部署机房,在某些情况下,两地的范围外延甚至可以达到两国的情形,这时就会有着跨机房同步的需求。目前针对这个需求主要的实现方式是基于业务trigger获取增量变更。
在近十年内,一些业务逐步尝试通过对数据库日志进行解析以获取增量变更,然后再进行同步增量变更,也由此而衍生出了大量的数据库增量订阅服务和消费的业务,即Canal。
如图1所示,MySQL主备数据库复制数据的原理如下:
MySQL master(主数据库)将数据变更(Data changes)写入二进制日志(binarylog),二进制日志中的记录叫做二进制日志事件(binary log events),可以通过showbinlog events进行查看;
MySQL slave(备数据库)将MySQL master的binary log events拷贝到自己的中继日志(relay log)中;
MySQL slave重放relay log中事件,将数据变更反映为自己的数据。
在复制数据过程中canal的工作原理如下:
canal模拟MySQL slave的交互协议,伪装自己为MySQL slave,向MySQL master发送dump协议;
MySQL master收到dump请求后,开始推送binary log给slave(即canal)。
canal解析binary log对象(binary log原始为byte流)。
但是,在该数据复制过程中,在MySQLmaster端的binary log的发送过程和在MySQLslave端的将binary log接收为relay log的过程,二者都是明文传输,因此,数据库间通信存在数据在传输过程中被拦截而泄密的风险,进而降低了整个通信过程的安全性。
发明内容
有鉴于此,本发明实施例提供了一种基于canal框架的数据传输系统,以解决现有技术中数据库间通信存在安全性低的技术问题。该系统包括:第一数据库端和第二数据库端,其中,
所述第一数据库端,包括:
秘钥获取模块,用于获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给第二数据库端;
所述第二数据库端,包括:
加密模块,用于采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的所述待传输数据输入第二队列中;
数据发送模块,用于将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端;
所述第一数据库端,还包括:
数据接收模块,用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
解密模块,用于通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
本发明实施例还提供了一种基于canal框架的数据传输方法,该方法运行在目的数据库端上,以解决现有技术中数据库间通信存在安全性低的技术问题。该方法包括:
获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给源数据库端,其中,所述源数据库端用于发送待传输数据,所述公钥用于加密所述待传输数据;
接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
本发明实施例还提供了一种基于canal框架的数据传输方法,该方法运行在源数据库端上,以解决现有技术中数据库间通信存在安全性低的技术问题。该方法包括:
接收来自目的数据库端的公钥,其中,所述目的数据库端用于接收待传输数据;
采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中;
将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的基于canal框架的数据传输方法,以解决现有技术中数据库间通信存在安全性低的技术问题。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的基于canal框架的数据传输方法的计算机程序,以解决现有技术中数据库间通信存在安全性低的技术问题。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:提出了第一数据库端和第二数据库端基于canal框架进行数据传输,第一数据库端获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给第二数据库端,以使得第二数据库端采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的待传输数据输入第二队列中,进而第二数据库端将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端,最后,第一数据库端接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中,再通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,即可得到所述待传输数据。实现了在第一数据库端和第二数据库端基于canal框架进行数据传输的过程中对数据进行加密传输,使得即使数据在传输过程中被攻击者拦截,攻击者也只能获取不具可读性的信息,无法获取具体的数据原文,从而可以避免数据库间传输数据的泄露,进而提高了数据库间通信的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是现有技术的一种数据复制原理图;
图2是本发明实施例提供的一种基于canal框架的数据传输系统的结构框图;
图3是本发明实施例提供的一种基于canal框架的数据传输系统传输数据的原理示意图;
图4是本发明实施例提供的一种基于canal框架的数据传输方法的流程图;
图5是本发明实施例提供的另一种基于canal框架的数据传输方法的流程图;
图6是本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本公开方案可以用于隐私计算应用场景,隐私计算(Privacy compute或Privacycomputing)是指在保护数据本身不对外泄露的前提下实现数据分析计算的技术集合,达到对数据“可用、不可见”的目的;在充分保护数据和隐私安全的前提下,实现数据价值的转化和释放。
数据安全是当今“大数据时代”的一个绕不开的话题,我们现在的日常生活中充斥着各种纷冗繁杂的数据,这些庞大的数据正是一大未及开采的宝藏,其中蕴藏着各种有价值的信息,而体现在个人身上最重要的信息也就是个人的隐私信息。
如果自己的个人隐私信息泄漏,在当今时代,就如同身无寸缕,轻则被各种骚扰信息、广告电话打扰了日常的生活,严重则甚至会被犯罪分子有针对性地利用而成为他们不法行为完美的马甲。
而由于日常生活的需要,我们需要在很多情况下提供自己的个人信息,其中不乏一些隐私信息。正常情况下,这些极其重要的个人信息会被存储到数据库中,现在数据库技术日臻完善,不怀好意的攻击者想通过对数据库的直接攻击窃取到他们想要的数据的难度与日俱增,但是数据库的信息并不是“死”的,数据只有流动才能产生价值。我们较完善的数据库便如同我们坚固的城池,而数据库间的通信则如同两座城池的商队,而觊觎着这些财富的攻击者们相比进攻高大而险固的城池肯定更愿意截取弱小的商队,因此我们在确保城池稳固的同时,也要确保商队的护卫完善,即确保数据库间通信的安全。因此,本申请提出了上述基于canal框架的数据传输系统,以为数据库间的通信提供一份保障,使得攻击者即使截取了通信的密文也无法解析出原文,进而提升了整个通信过程的安全性,保护了隐私数据等传输数据的安全。
在本发明实施例中,提供了一种基于canal框架的数据传输系统,如图2所示,该系统包括第一数据库端201和第二数据库端202,其中,
所述第一数据库端201,包括:
秘钥获取模块2011,用于获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给第二数据库端;
所述第二数据库端202,包括:
加密模块2021,用于采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的所述待传输数据输入第二队列中;
数据发送模块2022,用于将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端;
所述第一数据库端201,还包括:
数据接收模块2012,用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
解密模块2013,用于通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
由图2所示可知,在本发明实施例中,实现了在第一数据库端和第二数据库端基于canal框架进行数据传输的过程中对数据进行加密传输,使得即使数据在传输过程中被攻击者拦截,攻击者也只能获取不具可读性的信息,无法获取具体的数据原文,从而可以避免数据库间传输数据的泄露,进而提高了数据库间通信的安全性。
具体实施时,在数据库间的通信过程中,上述第一数据库端为目的数据库,进行数据接收,上述第二数据库端为源数据库,进行数据发送,在不同的数据库间的通信情况下,上述第一数据库端也可以作为源数据库,进行数据发送,上述第二数据库端也可以作为目的数据库,进行数据接收。
具体实施时,上述秘钥获取模块可以生成公钥-私钥对,也可以从其他设备获取公钥-私钥对。
具体实施时,为了进一步提高数据库间的通信安全,私钥可以根据不同的安全性要求进行定期更换,在本实施例中,为了满足更高的安全性要求,提出了针对每次传输任务生成一次性的公钥-私钥对,例如,所述秘钥获取模块,还用于针对每个数据传输任务,生成一组所述公钥-私钥对,即可以针对每一次数据传输任务都生成一组一次性的公钥-私钥对,以实现每一次数据传输任务更换一次公钥-私钥对。
具体实施时,在上述数据传输过程中,上述第一队列和上述第二队列可以采用卡夫卡消息队列,例如,所述加密模块,还用于通过所述canal服务器将加密后的所述待传输数据输入第二卡夫卡消息队列中;
所述数据发送模块,还用于将所述第二卡夫卡消息队列中加密后的所述待传输数据发送给所述第一数据库端;
所述数据接收模块,还用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一卡夫卡消息队列中;
所述解密模块,还用于通过所述canal适配器从所述第一卡夫卡消息队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
具体实施时,上述基于canal框架的数据传输系统可以适用于各种数据库间通信的应用场景,例如,可以用于数据库实时备份、数据库镜像、索引更新(即索引构建和实时维护)等应用场景。
具体实施时,针对数据库实时备份的应用场景,当数据库A中数据发生变动,为了数据的一致性,需要在数据库B中进行同样的数据更改。而出于数据时效性的考虑,希望数据库B的数据更改进行地越快越好,但同时也希望数据库B进行这个数据更改的过程中不会带来安全隐患。此时就可以应用上述基于canal框架的数据传输系统实现数据的更改,数据库B端即为上述第一数据库端,数据库A端即为上述第二数据库端,数据库A端的更改数据即为上述待传输数据。首先,在数据库B端生成公钥-私钥对或者取出本地保存的公钥-私钥对,之后将公钥发送到数据库A端,然后将数据库A端中的更改数据以操作日志的形式记录,之后对该操作日志使用公钥进行加密,再通过卡夫卡消息队列将加密后的操作日志发送至数据库B端,数据库B端接收加密过的操作日志并存为中继日志,数据库B端再对中继日志使用私钥进行解密即可获得数据库A端的操作日志的原文,然后即可以根据操作日志将数据库A端中进行的更改复刻至数据库B端中。
具体的,针对数据库实时备份的应用场景,所述加密模块,还用于将更改数据生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将加密后的所述操作日志输入所述第二队列中;
数据发送模块,还用于将所述第二队列中加密后的所述操作日志发送给所述第一数据库端;
所述数据接收模块,还用于接收来自所述第二数据库端的加密后的所述操作日志,并将加密后的所述操作日志存储为中继日志,将所述中继日志输入所述第一队列中;
所述解密模块,还用于通过所述canal适配器从所述第一队列中读取所述中继日志,采用所述公钥-私钥对的私钥对所述中继日志进行解密,得到所述更改数据。
具体实施时,针对数据库镜像的应用场景,当需要在某地设立一处新的机房进行部署,抑或是要完整记录某一个时点的数据库内的全部信息,以降低数据库被误删、被损坏之类的风险。此时就可以应用上述基于canal框架的数据传输系统实现数据库镜像,新的空数据库即为上述第一数据库端,被镜像的数
据库端即为上述第二数据库端,被镜像的数据库端的全部数据内容即为上述待5传输数据。首先,建立一个新的空数据库,并且在空的数据库端生成公钥-私钥对,之后将公钥发送到被镜像的数据库端,然后将被镜像的数据库端中的全部内容以二进制文件进行记录,之后对该二进制文件使用公钥进行加密,再通过卡夫卡消息队列将加密后的二进制文件发送至空数据库端,空数据库端接收
到加密后的二进制文件后,空数据库端再对该二进制文件使用私钥进行解密即0可获得被镜像的数据库端的全部内容的二进制文件的原文,然后即可以根据该二进制文件将被镜像的数据库中所有的内容复刻至空数据库中。
具体的,针对数据库镜像的应用场景,所述加密模块,还用于将待镜像数据(即上述被镜像的数据库端的全部数据内容)生成二进制文件,将所述二进
制文件作为所述待传输数据,并采用所述公钥对所述二进制文件进行加密,通5过所述canal服务器将加密后的所述二进制文件输入所述第二队列中;
数据发送模块,还用于将所述第二队列中加密后的所述二进制文件发送给所述第一数据库端;
所述数据接收模块,用于接收来自所述第二数据库端的加密后的所述二进制文件,将加密后的所述二进制文件输入所述第一队列中;
0解密模块,用于通过所述canal适配器从所述第一队列中读取加密后的所述二进制文件,采用所述公钥-私钥对的私钥对加密后的所述二进制文件进行解密,得到所述待镜像数据。
具体实施时,针对索引构建和实时维护(例如,拆分异构索引、倒排索引等)的应用场景,随着时间的流逝,数据库中存储的数据往往会变得纷冗繁杂,5出于某一特定的检索需求,一般会构建一个专门的索引以方便该检索需求。然而,有时候也需要根据检索需求的变更而对该索引进行一些结构上的调整,以使其更加适应该需求。同样地,也需要将新构建的索引和索引上的这些调整同步到其他数据库以应对相同的检索需求。此时就可以应用上述基于canal框架的数据传输系统实现索引的构建和实时维护,待同步的数据库端即为上述第一数据库端,新建索引或者调整了索引的数据库端即为上述第二数据库端,新构建的索引和/或对索引的改动即为上述待传输数据。新建索引或者调整了索引的数据库端将新构建的索引或者对索引的改动通过操作日志记录下来,并在待同步的数据库端取出存储的公钥-私钥对或者新生成公钥-私钥对,然后将公钥-私钥对中的公钥发送至新建索引或者调整了索引的数据库端,接收到公钥后即可将操作日志进行加密并通过卡夫卡消息队列发送至待同步的数据库端,待同步的数据库端接收到加密后的操作日志后将其存储为中继日志,然后使用私钥对中继日志进行解密,解密完成后,待同步的数据库端即可将得到的新构建索引的操作或者对索引的调整应用到本地,即可以完成同步。
具体的,针对索引构建和实时维护的应用场景,所述加密模块,还用于将用于搜索的索引的更新数据(即上述新构建索引的操作和/或对索引的调整)生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将加密后的所述操作日志输入所述第二队列中;
数据发送模块,还用于将所述第二队列中加密后的所述操作日志发送给所述第一数据库端;
所述数据接收模块,还用于接收来自所述第二数据库端的加密后的所述操作日志,并将加密后的所述操作日志存储为中继日志,将所述中继日志输入所述第一队列中;
所述解密模块,还用于通过所述canal适配器从所述第一队列中读取所述中继日志,采用所述公钥-私钥对的私钥对所述中继日志进行解密,得到所述更新数据。
具体实施时,上述第一数据库端和上述第二数据库端可以是属于同一网络的两个数据库,也可以是分别属于两个不同网络的数据库。
具体实施时,以上述第一数据库端和上述第二数据库端分别属于两个不同网络的数据库为例,如图3所示,第一数据库端为属于网1的MySQL slave端,第二数据库端为属于网2的MySQL master端,以下介绍上述第一数据库端和上述第二数据库端基于canal框架进行数据传输的过程:
1.由MySQL slave端生成自己的私钥和一份公钥,即生成公钥-私钥对,
2.MySQL slave端将私钥储存在MySQL slave端本地,将公钥可以用明文发送给MySQL master端;
3.MySQL master端使用接收到的公钥对待发送的binary log(即上述待传输数据)进行加密;
4.MySQL master端通过canal服务器(canal_server)将加密后的binary log输入网2的卡夫卡消息队列(图3中的kafka_网2,即上述第二队列)中,并通过网2的卡夫卡消息队列将加密后的binary log传输给网1的卡夫卡消息队列(图3中的kafka_网1,即上述第一队列);
5.MySQL slave端通过canal适配器(canal_adapter)从网1的卡夫卡消息队列中获取加密后的binary log,并将其保存为relay log;
6.MySQL slave端对接收到的relay log使用自己的私钥解密,即可得到传输信息的原文并完成整个通信过程。
具体实施时,在本实施例中,还提供了一种基于canal框架的数据传输方法,该方法运行在目的数据库端(即上述第一数据库端)上,如图4所示,该方法包括:
步骤S401:获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给源数据库端,其中,所述源数据库端用于发送待传输数据,所述公钥用于加密所述待传输数据;
步骤S402:接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
步骤S403:通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
在一个实施例中,获取公钥-私钥对,包括:针对每个数据传输任务,生成一组所述公钥-私钥对。
在一个实施例中,接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中,包括:
接收来自所述源数据库端的加密后的操作日志,并将加密后的所述操作日志存储为中继日志,将所述中继日志输入所述第一队列中,其中,所述操作日志是所述源数据库端的更改数据生成的;
通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据,包括:
通过所述canal适配器从所述第一队列中读取所述中继日志,采用所述公钥-私钥对的私钥对所述中继日志进行解密,得到所述更改数据。
在一个实施例中,接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中,包括:
接收来自所述源数据库端的加密后的所述二进制文件,将加密后的所述二进制文件输入所述第一队列中,其中,所述二进制文件是所述源数据库端的待镜像数据生成的;
通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据,包括:
通过所述canal适配器从所述第一队列中读取加密后的所述二进制文件,采用所述公钥-私钥对的私钥对加密后的所述二进制文件进行解密,得到所述待镜像数据。
在一个实施例中,接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中,包括:
接收来自所述源数据库端的加密后的所述操作日志,并将加密后的所述操作日志存储为中继日志,将所述中继日志输入所述第一队列中,其中,所述操5作日志是所述源数据库端的用于搜索的索引的更新数据生成的;
通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据,包括:
通过所述canal适配器从所述第一队列中读取所述中继日志,采用所述公0钥-私钥对的私钥对所述中继日志进行解密,得到所述更新数据。
在一个实施例中,上述第一队列可以是卡夫卡消息队列。即接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一卡夫卡消息队列中;再通过canal适配器从所述第一卡夫卡消息队列中读取
加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传5输数据进行解密,得到所述待传输数据。
具体实施时,在本实施例中,还提供了一种基于canal框架的数据传输方法,该方法运行在源数据库端(即上述第二数据库端)上,如图5所示,该方法包括:
步骤S501:接收来自目的数据库端的公钥,其中,所述目的数据库端用0于接收待传输数据;
步骤S502:采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中;
步骤S503:将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端。
5在一个实施例中,采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中,包括:
将更改数据生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将加密后的所述操作日志输入所述第二队列中;
将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端,包5括:
将所述第二队列中加密后的所述操作日志发送给所述目的数据库端。
在一个实施例中,采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中,包括:
将待镜像数据生成二进制文件,将所述二进制文件作为所述待传输数据,0并采用所述公钥对所述二进制文件进行加密,通过所述canal服务器将加密后的所述二进制文件输入所述第二队列中;
将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端,包括:
将所述第二队列中加密后的所述二进制文件发送给所述目的数据库端。5在一个实施例中,采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中,包括:
将用于搜索的索引的更新数据生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将加密后的所述操作日志输入所述第二队列中;
0将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端,包括:
将所述第二队列中加密后的所述操作日志发送给所述目的数据库端。
在本实施例中,上述第二队列可以是卡夫卡消息队列。即采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入5第二卡夫卡消息队列中;再将所述第二卡夫卡消息队列中加密后的所述待传输数据发送给所述目的数据库端。
在本实施例中,提供了一种计算机设备,如图6所示,包括存储器601、处理器602及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的基于canal框架的数据传输方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的基于canal框架的数据传输方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例实现了如下技术效果:实现了在第一数据库端和第二数据库端基于canal框架进行数据传输的过程中对数据进行加密传输,使得即使数据在传输过程中被攻击者拦截,攻击者也只能获取不具可读性的信息,无法获取具体的数据原文,从而可以避免数据库间传输数据的泄露,进而提高了数据库间通信的安全性。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于canal框架的数据传输系统,其特征在于,包括:
第一数据库端和第二数据库端,其中,
所述第一数据库端,包括:
秘钥获取模块,用于获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给第二数据库端;
所述第二数据库端,包括:
加密模块,用于采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的所述待传输数据输入第二队列中;
数据发送模块,用于将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端;
所述第一数据库端,还包括:
数据接收模块,用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
解密模块,用于通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
2.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,
所述加密模块,还用于将更改数据生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将加密后的所述操作日志输入所述第二队列中;
数据发送模块,还用于将所述第二队列中加密后的所述操作日志发送给所述第一数据库端;
所述数据接收模块,还用于接收来自所述第二数据库端的加密后的所述操作日志,并将加密后的所述操作日志存储为中继日志,将所述中继日志输入所述第一队列中;
所述解密模块,还用于通过所述canal适配器从所述第一队列中读取所述中继日志,采用所述公钥-私钥对的私钥对所述中继日志进行解密,得到所述更改数据。
3.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,
所述加密模块,还用于将待镜像数据生成二进制文件,将所述二进制文件作为所述待传输数据,并采用所述公钥对所述二进制文件进行加密,通过所述canal服务器将加密后的所述二进制文件输入所述第二队列中;
数据发送模块,还用于将所述第二队列中加密后的所述二进制文件发送给所述第一数据库端;
所述数据接收模块,用于接收来自所述第二数据库端的加密后的所述二进制文件,将加密后的所述二进制文件输入所述第一队列中;
解密模块,用于通过所述canal适配器从所述第一队列中读取加密后的所述二进制文件,采用所述公钥-私钥对的私钥对加密后的所述二进制文件进行解密,得到所述待镜像数据。
4.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,
所述加密模块,还用于将用于搜索的索引的更新数据生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将加密后的所述操作日志输入所述第二队列中;
数据发送模块,还用于将所述第二队列中加密后的所述操作日志发送给所述第一数据库端;
所述数据接收模块,还用于接收来自所述第二数据库端的加密后的所述操作日志,并将加密后的所述操作日志存储为中继日志,将所述中继日志输入所述第一队列中;
所述解密模块,还用于通过所述canal适配器从所述第一队列中读取所述中继日志,采用所述公钥-私钥对的私钥对所述中继日志进行解密,得到所述更新数据。
5.如权利要求1至4中任一项所述的基于canal框架的数据传输系统,其特征在于,
所述秘钥获取模块,用于针对每个数据传输任务,生成一组所述公钥-私钥对。
6.如权利要求1至4中任一项所述的基于canal框架的数据传输系统,其特征在于,
所述加密模块,还用于通过所述canal服务器将加密后的所述待传输数据输入第二卡夫卡消息队列中;
所述数据发送模块,还用于将所述第二卡夫卡消息队列中加密后的所述待传输数据发送给所述第一数据库端;
所述数据接收模块,还用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一卡夫卡消息队列中;
所述解密模块,还用于通过所述canal适配器从所述第一卡夫卡消息队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
7.一种基于canal框架的数据传输方法,所述方法运行在目的数据库端上,其特征在于,包括:
获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给源数据库端,其中,所述源数据库端用于发送待传输数据,所述公钥用于加密所述待传输数据;
接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
8.一种基于canal框架的数据传输方法,所述方法运行在源数据库端上,其特征在于,包括:
接收来自目的数据库端的公钥,其中,所述目的数据库端用于接收待传输数据;
采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中;
将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7或8所述的基于canal框架的数据传输方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求7或8所述的基于canal框架的数据传输方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211736637.8A CN116015947A (zh) | 2022-12-30 | 2022-12-30 | 基于canal框架的数据传输系统、方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211736637.8A CN116015947A (zh) | 2022-12-30 | 2022-12-30 | 基于canal框架的数据传输系统、方法、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116015947A true CN116015947A (zh) | 2023-04-25 |
Family
ID=86035187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211736637.8A Pending CN116015947A (zh) | 2022-12-30 | 2022-12-30 | 基于canal框架的数据传输系统、方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116015947A (zh) |
-
2022
- 2022-12-30 CN CN202211736637.8A patent/CN116015947A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120639B (zh) | 一种基于区块链的数据云存储加密方法及系统 | |
US20210160227A1 (en) | Blockchain-based service data encryption methods and apparatuses | |
CN108259169B (zh) | 一种基于区块链云存储的文件安全分享方法及系统 | |
US10581603B2 (en) | Method and system for secure delegated access to encrypted data in big data computing clusters | |
CN112800472B (zh) | 一种基于微服务架构工业互联网标识数据保护系统 | |
US9122882B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
CN110915164A (zh) | 基于可信执行环境中执行的智能合约操作处理区块链数据 | |
US9256499B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
WO2018218953A1 (en) | Data backup method and device, storage medium and server | |
CN111108734B (zh) | 基于存储空间互换的改进的防重放设备 | |
US9064133B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
CN110502916A (zh) | 一种基于区块链的敏感性数据处理方法与系统 | |
CN107995147B (zh) | 基于分布式文件系统的元数据加解密方法和系统 | |
US11387990B2 (en) | Method and apparatus for generating description information | |
CN112733189A (zh) | 一种实现文件存储服务端加密的系统与方法 | |
US20120250857A1 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
CN116155491B (zh) | 安全芯片的对称密钥同步方法及安全芯片装置 | |
KR102096637B1 (ko) | 블록체인에서 정보 조회 시간의 기록을 위한 분산 원장 장치 | |
CN116015947A (zh) | 基于canal框架的数据传输系统、方法、设备及介质 | |
GB2444343A (en) | Encryption system for peer-to-peer networks in which data is divided into chunks and self-encryption is applied | |
KR102096639B1 (ko) | Uuid를 이용한 블록체인에서 정보 조회 기록의 무결성을 위한 분산 원장 장치 | |
US20160063264A1 (en) | Method for securing a plurality of contents in mobile environment, and a security file using the same | |
CN113452654B (zh) | 一种数据解密的方法 | |
CN114640543B (zh) | 一种跨网域数据加密传输与加密状态下数据匹配的方法 | |
KR102096638B1 (ko) | 하이브리드 암호 방식을 이용한 블록체인에서 정보 조회 기록의 무결성을 위한 분산 원장 장치 |
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 |