数据同步

Canal了解使用

2022-07-09  本文已影响0人  long_c2b7

1. canal 是什么

阿里巴巴 MySQL binlog 增量订阅&消费组件
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费

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

1.2 canal Git地址

alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com)

2. 工作原理

MySQL主备复制原理

主备复制原理

canal 工作原理

3.版本

<dependency>
    <groupId>com.alibaba.otter</groupId>
    <artifactId>canal.client</artifactId>
    <version>1.1.4</version>
</dependency>

4.Quick Start

4.1 准备

对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下

[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

注意:针对阿里云 RDS for MySQL , 默认打开了 binlog , 并且账号默认具有 binlog dump 权限 , 不需要任何权限或者 binlog 设置,可以直接跳过这一步
授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

4.2 启动

    wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz
```
mkdir /tmp/canal
tar zxvf canal.deployer-$version.tar.gz  -C /tmp/canal
```
     drwxr-xr-x 2 jianghang jianghang  136 2013-02-05 21:51 bin
     drwxr-xr-x 4 jianghang jianghang  160 2013-02-05 21:51 conf
     drwxr-xr-x 2 jianghang jianghang 1.3K 2013-02-05 21:51 lib
     drwxr-xr-x 2 jianghang jianghang   48 2013-02-05 21:29 logs     

Canal 配置参考

AdminGuide · alibaba/canal Wiki (github.com)

上一篇 下一篇

猜你喜欢

热点阅读