基于canal框架的数据传输系统、方法、设备及介质与流程

文档序号:33948002发布日期:2023-04-26 09:17阅读:41来源:国知局
基于canal框架的数据传输系统、方法、设备及介质与流程

本发明涉及数据处理,特别涉及一种基于canal框架的数据传输系统、方法、设备及介质。


背景技术:

1、由于一些业务的发展需求,往往需要在两地分别部署机房,在某些情况下,两地的范围外延甚至可以达到两国的情形,这时就会有着跨机房同步的需求。目前针对这个需求主要的实现方式是基于业务trigger获取增量变更。

2、在近十年内,一些业务逐步尝试通过对数据库日志进行解析以获取增量变更,然后再进行同步增量变更,也由此而衍生出了大量的数据库增量订阅服务和消费的业务,即canal。

3、如图1所示,mysql主备数据库复制数据的原理如下:

4、mysql master(主数据库)将数据变更(data changes)写入二进制日志(binarylog),二进制日志中的记录叫做二进制日志事件(binary log events),可以通过showbinlog events进行查看;

5、mysql slave(备数据库)将mysql master的binary log events拷贝到自己的中继日志(relay log)中;

6、mysql slave重放relay log中事件,将数据变更反映为自己的数据。

7、在复制数据过程中canal的工作原理如下:

8、canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议;

9、mysql master收到dump请求后,开始推送binary log给slave(即canal)。

10、canal解析binary log对象(binary log原始为byte流)。

11、但是,在该数据复制过程中,在mysqlmaster端的binary log的发送过程和在mysqlslave端的将binary log接收为relay log的过程,二者都是明文传输,因此,数据库间通信存在数据在传输过程中被拦截而泄密的风险,进而降低了整个通信过程的安全性。


技术实现思路

1、有鉴于此,本发明实施例提供了一种基于canal框架的数据传输系统,以解决现有技术中数据库间通信存在安全性低的技术问题。该系统包括:第一数据库端和第二数据库端,其中,

2、所述第一数据库端,包括:

3、秘钥获取模块,用于获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给第二数据库端;

4、所述第二数据库端,包括:

5、加密模块,用于采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的所述待传输数据输入第二队列中;

6、数据发送模块,用于将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端;

7、所述第一数据库端,还包括:

8、数据接收模块,用于接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;

9、解密模块,用于通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。

10、本发明实施例还提供了一种基于canal框架的数据传输方法,该方法运行在目的数据库端上,以解决现有技术中数据库间通信存在安全性低的技术问题。该方法包括:

11、获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给源数据库端,其中,所述源数据库端用于发送待传输数据,所述公钥用于加密所述待传输数据;

12、接收来自所述源数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中;

13、通过canal适配器从所述第一队列中读取加密后的所述待传输数据,采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,得到所述待传输数据。

14、本发明实施例还提供了一种基于canal框架的数据传输方法,该方法运行在源数据库端上,以解决现有技术中数据库间通信存在安全性低的技术问题。该方法包括:

15、接收来自目的数据库端的公钥,其中,所述目的数据库端用于接收待传输数据;

16、采用所述公钥对所述待传输数据进行加密,通过canal服务器将加密后的所述待传输数据输入第二队列中;

17、将所述第二队列中加密后的所述待传输数据发送给所述目的数据库端。

18、本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的基于canal框架的数据传输方法,以解决现有技术中数据库间通信存在安全性低的技术问题。

19、本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的基于canal框架的数据传输方法的计算机程序,以解决现有技术中数据库间通信存在安全性低的技术问题。

20、与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:提出了第一数据库端和第二数据库端基于canal框架进行数据传输,第一数据库端获取公钥-私钥对,并将所述公钥-私钥对的公钥发送给第二数据库端,以使得第二数据库端采用所述公钥对待传输数据进行加密,并通过canal服务器将加密后的待传输数据输入第二队列中,进而第二数据库端将所述第二队列中加密后的所述待传输数据发送给所述第一数据库端,最后,第一数据库端接收来自所述第二数据库端的加密后的所述待传输数据,并将加密后的所述待传输数据输入第一队列中,再通过canal适配器从所述第一队列中读取加密后的所述待传输数据,并采用所述公钥-私钥对的私钥对加密后的所述待传输数据进行解密,即可得到所述待传输数据。实现了在第一数据库端和第二数据库端基于canal框架进行数据传输的过程中对数据进行加密传输,使得即使数据在传输过程中被攻击者拦截,攻击者也只能获取不具可读性的信息,无法获取具体的数据原文,从而可以避免数据库间传输数据的泄露,进而提高了数据库间通信的安全性。



技术特征:

1.一种基于canal框架的数据传输系统,其特征在于,包括:

2.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,

3.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,

4.如权利要求1所述的基于canal框架的数据传输系统,其特征在于,

5.如权利要求1至4中任一项所述的基于canal框架的数据传输系统,其特征在于,

6.如权利要求1至4中任一项所述的基于canal框架的数据传输系统,其特征在于,

7.一种基于canal框架的数据传输方法,所述方法运行在目的数据库端上,其特征在于,包括:

8.一种基于canal框架的数据传输方法,所述方法运行在源数据库端上,其特征在于,包括:

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7或8所述的基于canal框架的数据传输方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求7或8所述的基于canal框架的数据传输方法的计算机程序。


技术总结
本发明实施例提供了一种基于canal框架的数据传输系统、方法、设备及介质,涉及数据处理技术领域,其中,该系统包括:第一数据库端,包括:秘钥获取模块,获取公钥‑私钥对,将公钥发送给第二数据库端;第二数据库端,包括:加密模块,采用公钥对待传输数据加密,并通过canal服务器将加密后的待传输数据输入第二队列;数据发送模块,将第二队列中加密后的待传输数据发送给第一数据库端;第一数据库端,包括:数据接收模块,接收来自第二数据库端的加密后的待传输数据,将加密后的待传输数据输入第一队列;解密模块,通过canal适配器从第一队列中读取加密后的待传输数据,采用私钥对加密后的待传输数据进行解密,得到待传输数据。

技术研发人员:请求不公布姓名
受保护的技术使用者:北京瑞莱智慧科技有限公司
技术研发日:
技术公布日:2024/1/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1