美文网首页
阿里的canal的使用

阿里的canal的使用

作者: 天道changzai | 来源:发表于2022-04-14 11:30 被阅读0次

部署canal.deployer

canal.deployer的作用就是监听binlog的变动,解释binlog分装成event

下载相应的jar包

canal的git:https://github.com/alibaba/canal

下载发布版本,我这里选择的是canal-1.1.5,地址:https://github.com/alibaba/canal/releases/tag/canal-1.1.5

配置

解压 canal.deployer-1.1.5.tar.gz

进入到canal.deployer-1.1.5目录下

canal.deployer

bib目录下放的是启动和停止的脚本,如果需要调整jvm的参数,可以修改

canal.deployer的启动类就是CanalLauncher

conf目录下放的就是相关的配置

canal的配置

这里accountUser目录是我自己重新建的

canal.properties 需要修改的就是destinations这块

修改配置
canal.destinations = example,accountUser

其他的zk、canal.admin、mq、kafka、rabbitmq、rocketmq有需要,可以配置,我这里没有用到就不配置

如果去需要新增一个自定义的监听,则需要在conf下新建一个目录,例如:order,再加order目录下,新增instance.properties的文件,最后再把刚才建立的目录名字配置在canal.properties文件的canal.destinations后面

例如:canal.destinations = example,accountUser,order

instance.properties文件的配置

#################################################

## mysql serverId , v1.0.26+ will autoGen

## canal是作为mysql的salve角色去连接mysql的,所以需要配置一个与mysql不一样的唯一的serverId

# 查看mysql的serverId

# SELECT @@server_id as SERVER_ID;

canal.instance.mysql.slaveId=123400000

# enable gtid use true/false

canal.instance.gtidon=false

# position info

# mysql master的地址

canal.instance.master.address=127.0.0.1:3306

canal.instance.master.journal.name=

canal.instance.master.position=

canal.instance.master.timestamp=

canal.instance.master.gtid=

# rds oss binlog

canal.instance.rds.accesskey=

canal.instance.rds.secretkey=

canal.instance.rds.instanceId=

# username/password

# 账号

canal.instance.dbUsername=root

canal.instance.dbPassword=12345678

canal.instance.connectionCharset = UTF-8

# enable druid Decrypt database password

# 是否启用druid数据池

canal.instance.enableDruid=false

# table regex

监听的库和表

canal.instance.filter.regex=.*\\..*

# table black regex

过滤的库和表

canal.instance.filter.black.regex=mysql\\.slave_.*

# table field filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)

#canal.instance.filter.field=test1.t_product:id/subject/keywords,test2.t_company:id/name/contact/ch

# table field black filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)

#canal.instance.filter.black.field=test1.t_product:subject/product_image,test2.t_company:id/name/contact/ch

#################################################

支持动态增加destination

启动

回到主目录下

执行

./bin/startup.sh

查看是否启动

tail -f logs/canal/canal.log

启动日志

canal.deployer的默认开放连接端口:11111

canal的数据保存,会在相应的destination增加两个文件

h2.mv.db和mate.dat

验证

自己建立一个maven项目

引入相应版本的canal-client

<dependency>

            <groupId>com.alibaba.otter</groupId>

            <artifactId>canal.protocol</artifactId>

            <version>1.1.5</version>

        </dependency>

拷贝📎UserCanalDemo.java

修改对于canal的连接信息

CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111), "accountUser", "", "");

启动改类,

修改mysql数据,插入数据,删除数据,就可以看到相应的变化

文档

https://github.com/alibaba/canal/wiki/QuickStart

相关文章

  • mysql同步数据到redis-增量同步

    使用阿里开源的canal[https://github.com/alibaba/canal]作为数据同步工具。 方...

  • Canal的基本介绍及原理

    Canal的介绍 Canal是基于Mysql二进制的高性能数据同步系统,Canal在阿里巴巴集团中被广泛使用,以提...

  • Canal数据堆积

    记录一下canal的问题。数据同步一直使用阿里开源的canal,最近使用过程中遇到一些问题,在这里记录一下。 原因...

  • Canal 可行性demo

    canal概述: canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。早期,阿里巴...

  • Canal v1.1.4 基于 macOS docker本地开发

    环境 macOS Docker canal canal-admin 最近在看MySQL Binlog相关内容,阿里...

  • Canal了解使用

    1. canal 是什么 阿里巴巴 MySQL binlog 增量订阅&消费组件canal [kə'næl],译意...

  • [Canal] Canal简介

    canal是阿里巴巴开源的mysql数据库binlog的增量订阅&消费组件。当前的 canal 支持源端 ...

  • Canal——原理架构及应用场景

    Canal简介 Canal是阿里开源的一款基于Mysql数据库binlog的增量订阅和消费组件,通过它可以订阅数据...

  • Canal 介绍

    canal 作用 canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅...

  • 数据同步中间件Canal

    使用canal可以实现对数据进行收集,同步到NoSQL数据库等操作。 Canal简介 Canal是一个用于数据同步...

网友评论

      本文标题:阿里的canal的使用

      本文链接:https://www.haomeiwen.com/subject/cfwfertx.html