Canal下载、部署和入门(详细)

1 概述

  • canal [kə’næl],译意为水道/管道/沟渠。
  • 是阿里巴巴旗下的一款开源项目,纯Java开发。
  • 基于数据库增量日志解析,提供增量数据订阅&消费主要用途是基于 MySQL 数据库增量日志解析,目前主要支持mysql。

2 优缺点

  • 优点:与业务代码完全解耦,API完全解耦,异步处理,且可以做到准实时,用着很舒服;
  • 缺点:
    • 开启Binlog后,对数据库会产生额外的开销,性能会受到影响;
    • canal是第三方实现的,需要学习成本(学无止尽,技多不压身);

2 常用场景

  • Canal 是阿里 Otter 中间件的一部分,Otter是阿里用于进行异地数据库之间的同步框架;
  • 用来更新缓存,减少实时数据同步的DB压力;
  • 抓取业务数据新增变化表,用于制作拉链表;
  • 抓取业务表的新增变化数据,用于制作实时统计;

3 工作原理

Mysql的Binlog 记录了所有的 DDL 和 DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。主要用来备份和数据同步。 Canal 主要是基于 Binlog 的一项技术。

  • 在mysql中开启binlog日志记录,完成主从复制。
  • canal 会伪装(实现了mysql的binlog日志的传输协议)为 mysql的一个从机实例! 向mysql的主机发送dump请求。
  • 主机将binlog日志发送给canal,有canal解析,解析后,可以发送到任意地方。
    在这里插入图片描述
    Binlog 有三种模式:STATEMENT、ROW、MIXED
  • STATEMENT 记录的是执行的sql语句。
  • ROW 记录的是真实的行数据记录。
  • MIXED 记录的是1+2,优先按照1的模式记录。

(关于 Binlog 的部分不做过多阐述,有兴趣的自行百度下,下面进入正文)

4 快速开始

4.1 准备

4.1.1 开启 mysql 的 Binlog

详细见我写的另一篇文章内容:《Mysql 数据库开启 binlog》

4.1.2 下载 Canal 文件包

官方下载地址:https://github.com/alibaba/canal/releases
(本次下载的 canal 是版本号为:1.1.6)
在这里插入图片描述
解压后得到如下文件夹
在这里插入图片描述

4.1.3 修改配置文件

进入到 ​​conf\example​​​文件加下,修改 ​​instance.properties​​ 配置

#position info,需要改成自己的数据库信息
canal.instance.master.address = 127.0.0.1:3306 
canal.instance.master.journal.name = 
canal.instance.master.position = 
canal.instance.master.timestamp = 
#canal.instance.standby.address = 
#canal.instance.standby.journal.name =
#canal.instance.standby.position = 
#canal.instance.standby.timestamp = 
# username/password,需要改成自己的数据库信息
canal.instance.dbUsername=root
canal.instance.dbPassword=root
canal.instance.connectionCharset = UTF-8
#table regex 数据库表的过滤
canal.instance.filter.regex=canal_test.*
4.1.4 启动 Canal
./bin/startup.sh

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值