canal安装使用

简介

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

工作原理

canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议
MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
canal 解析 binary log 对象(原始为 byte 流)

QuickStart

show variables like 'log_bin';

show variables like 'binlog_format';

MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式

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

授权 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;

下载

Releases · alibaba/canal · GitHub

# 客户端
canal.adapter-1.1.8-SNAPSHOT.tar.gz
# 管理端
canal.admin-1.1.8-SNAPSHOT.tar.gz
# 服务端
canal.deployer-1.1.8-SNAPSHOT.tar.gz

配置修改

vi conf/example/instance.properties

启动sh bin/startup.sh

windows下启动报错Unrecognized VM option 'PermSize=128m',是因为在jdk8(含)以后,永久代被移除了,所以虚拟机的启动参数MaxPermSize(最大永久代大小)不可用,去掉-XX:PermSize=128m就可以了。

Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.pool.DruidDataSource

### 安装前提条件 安装和配置 Canal 前,需具备以下条件: - Java 开发环境:安装 JDK 1.8 或更高版本。 - Maven:安装 Maven 3.x 版本。 - MySQL 数据库:安装并配置 MySQL 数据库,且数据库中有需要监听的表。 [^2] ### 安装步骤 #### 下载并解压 Canal 可从项目地址(https://gitcode.com/gh_mirrors/ca/canal )下载 Canal,然后进行解压 [^1][^3]。 #### 配置 Canal Canal 配置文件(example/instance.properties)默认是 canal/canal,若不设置本步骤,可修改 instance.properties 配置文件,也可设置为 Root 用户 [^1]。 #### 运行 Canal 容器 使用以下命令运行 Canal 容器: ```bash docker run -p 11111:11111 -p 11110:11110 -p 11112:11112 \ --name canal \ -e canal.destinations=destination \ -e canal.instance.master.address=ip:port \ -e canal.instance.dbUsername=canal \ -e canal.instance.dbPassword=canal \ -e canal.instance.connectionCharset=UTF-8 \ -e canal.instance.tsdb.enable=true \ -e canal.instance.gtidon=false \ -e canal.instance.filter.regex=dataBaseName\\..* \ -d canal/canal-server:latest ``` 其中,需根据实际情况修改 `ip:port` 和 `dataBaseName` 等参数 [^4]。 ### 使用方法 #### Spring Boot Starter Canal 开始安装和配置前,确保已安装并启动 Canal 服务。安装步骤包含克隆项目等 [^2]。 #### Canal - Go 开源项目 启动逻辑主要集中在 canal.go 文件中,该文件负责初始化运河客户端实例,配置连接参数,以及启动监听任务。开发者通常无需直接修改此文件,而是通过调整配置文件或者在应用中导入 canal - go 并自定义处理器来接入数据流。基本使用流程如下: ```go func main() { // 初始化 Canal 客户端 canal := NewCanal(config) // 注册处理逻辑 canal.SetMessageHandler(yourCustomHandler) // 启动监听 err := canal.Run() if err != nil { log.Fatal("Failed to start Canal:", err) } } ``` 使用时需设置服务器地址、数据库信息等,然后创建并启动一个 CanalClient 实例,之后通过注册消息处理器来处理接收到的数据变化事件 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值