• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

SpringBoot使用canal实现数据同步增量


Recommended Posts

canal简介

Canal是阿里巴巴的开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅消费。目前主要支持MySQL(和mariaDB)。

运河是同步增量数据的一个工具.

canal应用场景

基于日志增量订阅和消费的服务包括

数据库镜像

数据库实时备份

索引构建和实时维护(拆分异构索引、倒排索引等。)

服务缓存刷新

使用业务逻辑进行增量数据处理

目前canal支持的源MySQL版本有5.1.x、5.5.x、5.6.x、5.7.x、8.0.x

webp

将用户的订单信息传入后台。

后台服务器将订单信息保存到mysql数据库。

Canal监控mysql中写操作的变化,将插入数据写入kafka。

通过sparkStreaming读取Kafka中的数据并计算。

将计算结果写回服务器,并返回给浏览器。

Canal可以向其他中间件(mysql、elasticsearch、hbase等)写入数据。)除了写卡夫卡。

webp

canal工作原理

MySQL主备复制原理:

webp

MySQL master将数据更改写入二进制日志(二进制日志,这里的记录称为二进制日志事件,可以通过show binlog events查看)。

MySQL从服务器将主服务器的二进制日志事件复制到它的中继日志中。

MySQL slave在中继日志中重放事件,并将数据更改反映到自己的数据中。

canal 工作原理

Canal模拟MySQL slave的交互协议,伪装成MySQL slave,向MySQL master发送dump协议。

MySQL master收到转储请求,开始将二进制日志推送到slave (canal)。

Canal解析二进制日志对象(最初是字节流)

运河就像一个‘间谍’。它假装是从机,从主机那里骗取数据。拿到数据后,分析一下。比如只需添加新数据或者删除修改数据,重新打包数据,将数据重新写入第三方服务(mysql、Kafka、es等)。).

SpringBoot使用canal

Link to comment
Share on other sites