canal的应用场景(根据图详细解析)

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

先来简单的结合实际开发了解一下canal的工作原理吧
canal的应用场景(根据图详细解析)
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
说白了就是利用mysql的主从同步机制。这货伪装成一个slave节点,去读取binlog日志分析数据变更,进行同步操作。
基于生产者和消费者模型

最后再简单介绍一下 导入数据 = 全量数据+增量数据
简单挂个小图
canal的应用场景(根据图详细解析)
实际使用:
1,开启mysql的bin-log日志
2,搭建canal服务端
3,搭建客户端
具体详细配置:
内容较多,可自行百度,在这篇文章中,你只能看到canal的实际应用场景.
如何使用:
简单的操作一下
1,将canal加入到你的本地仓库中
2,然后在网上找阿里弄好的canal,放到自己的项目中,稍微修改一下就行了.
3,github好像有canal的地址,我在网上看了一眼,测试了一下,东西不太一样,
有时间的话我会再研究一下,其实这个知识点用起来不是很难,多研究一下就好了.先把地址留下: https://github.com/alibaba/canal