基于canal框架的数据传输系统、方法、设备及介质技术方案

技术编号:37383519 阅读:13 留言:0更新日期:2023-04-27 07:24
本发明专利技术实施例提供了一种基于canal框架的数据传输系统、方法、设备及介质,涉及数据处理技术领域,其中,该系统包括:第一数据库端,包括:秘钥获取模块,获取公钥

【技术实现步骤摘要】
基于canal框架的数据传输系统、方法、设备及介质


[0001]本专利技术涉及数据处理
,特别涉及一种基于canal框架的数据传输系统、方法、设备及介质。

技术介绍

[0002]由于一些业务的发展需求,往往需要在两地分别部署机房,在某些情况下,两地的范围外延甚至可以达到两国的情形,这时就会有着跨机房同步的需求。目前针对这个需求主要的实现方式是基于业务trigger获取增量变更。
[0003]在近十年内,一些业务逐步尝试通过对数据库日志进行解析以获取增量变更,然后再进行同步增量变更,也由此而衍生出了大量的数据库增量订阅服务和消费的业务,即Canal。
[0004]如图1所示,MySQL主备数据库复制数据的原理如下:
[0005]MySQL master(主数据库)将数据变更(Data changes)写入二进制日志(binary log),二进制日志中的记录叫做二进制日志事件(binary log events),可以通过show binlog events进行查看;
[0006]MySQL slave(备数据库)将MySQL master的binary log events拷贝到自己的中继日志(relay log)中;
[0007]MySQL slave重放relay log中事件,将数据变更反映为自己的数据。
[0008]在复制数据过程中canal的工作原理如下:
[0009]canal模拟MySQL slave的交互协议,伪装自己为MySQL slave,向MySQL master发送dump协议;
[0010]MySQL master收到dump请求后,开始推送binary log给slave(即canal)。
[0011]canal解析binary log对象(binary log原始为byte流)。
[0012]但是,在该数据复制过程中,在MySQLmaster端的binary log的发送过程和在MySQLslave端的将binary log接收为relay log的过程,二者都是明文传输,因此,数据库间通信存在数据在传输过程中被拦截而泄密的风险,进而降低了整个通信过程的安全性。

技术实现思路

[0013]有鉴于此,本专利技术实施例提供了一种基于canal框架的数据传输系统,以解决现有技术中数据库间通信存在安全性低的技术问题。该系统包括:第一数据库端和第二数据库端,其中,
[0014]所述第一数据库端,包括:
[0015]秘钥获取模块,用于获取公钥

私钥对,并将所述公钥

私钥对的公钥发送给第二数据库端;
[0016]所述第二数据库端,包括:
[0017]加密模块,用于采用所述公钥对待传输数据进行加密,并通过canal服务器将加密
后的所述待传输数据输入第二队列中;
[0018]数据发送模块,用于将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端;
[0019]所述第一数据库端,还包括:
[0020]数据接收模块,用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
[0021]解密模块,用于通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥

私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
[0022]本专利技术实施例还提供了一种基于canal框架的数据传输方法,该方法运行在目的数据库端上,以解决现有技术中数据库间通信存在安全性低的技术问题。该方法包括:
[0023]获取公钥

私钥对,并将所述公钥

私钥对的公钥发送给源数据库端,其中,所述源数据库端用于发送待传输数据,所述公钥用于加密所述待传输数据;
[0024]接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;
[0025]通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥

私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。
[0026]本专利技术实施例还提供了一种基于canal框架的数据传输方法,该方法运行在源数据库端上,以解决现有技术中数据库间通信存在安全性低的技术问题。该方法包括:
[0027]接收来自目的数据库端的公钥,其中,所述目的数据库端用于接收待传输数据;
[0028]采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中;
[0029]将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端。
[0030]本专利技术实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的基于canal框架的数据传输方法,以解决现有技术中数据库间通信存在安全性低的技术问题。
[0031]本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的基于canal框架的数据传输方法的计算机程序,以解决现有技术中数据库间通信存在安全性低的技术问题。
[0032]与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:提出了第一数据库端和第二数据库端基于canal框架进行数据传输,第一数据库端获取公钥

私钥对,并将所述公钥

私钥对的公钥发送给第二数据库端,以使得第二数据库端采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的待传输数据输入第二队列中,进而第二数据库端将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端,最后,第一数据库端接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中,再通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥

私钥对的私钥对加密后的所述待传输数据进行解密,即可得到所述待传输数据。实现了在第一数据库端和第二数据库端基于canal框架进行数据传输的过程中对数据进行加密传输,使得即使数据在传输过程中被攻
击者拦截,攻击者也只能获取不具可读性的信息,无法获取具体的数据原文,从而可以避免数据库间传输数据的泄露,进而提高了数据库间通信的安全性。
附图说明
[0033]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0034]图1是现有技术的一种数据复制原理图;
[0035]图2是本专利技术实施例提供本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于canal框架的数据传输系统,其特征在于,包括:第一数据库端和第二数据库端,其中,所述第一数据库端,包括:秘钥获取模块,用于获取公钥

私钥对,并将所述公钥

私钥对的公钥发送给第二数据库端;所述第二数据库端,包括:加密模块,用于采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的所述待传输数据输入第二队列中;数据发送模块,用于将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端;所述第一数据库端,还包括:数据接收模块,用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;解密模块,用于通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥

私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。2.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,所述加密模块,还用于将更改数据生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将加密后的所述操作日志输入所述第二队列中;数据发送模块,还用于将所述第二队列中加密后的所述操作日志发送给所述第一数据库端;所述数据接收模块,还用于接收来自所述第二数据库端的加密后的所述操作日志,并将加密后的所述操作日志存储为中继日志,将所述中继日志输入所述第一队列中;所述解密模块,还用于通过所述canal适配器从所述第一队列中读取所述中继日志,采用所述公钥

私钥对的私钥对所述中继日志进行解密,得到所述更改数据。3.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,所述加密模块,还用于将待镜像数据生成二进制文件,将所述二进制文件作为所述待传输数据,并采用所述公钥对所述二进制文件进行加密,通过所述canal服务器将加密后的所述二进制文件输入所述第二队列中;数据发送模块,还用于将所述第二队列中加密后的所述二进制文件发送给所述第一数据库端;所述数据接收模块,用于接收来自所述第二数据库端的加密后的所述二进制文件,将加密后的所述二进制文件输入所述第一队列中;解密模块,用于通过所述canal适配器从所述第一队列中读取加密后的所述二进制文件,采用所述公钥

私钥对的私钥对加密后的所述二进制文件进行解密,得到所述待镜像数据。4.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,所述加密模块,还用于将用于搜索的索引的更新数据生成操作日志,将所述操作日志作为所述待传输数据,并采用所述公钥对所述操作日志进行加密,通过所述canal服务器将
加密后的所述操作日志输入所述第二队列中;数据...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:北京瑞莱智慧科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1