canal for RDS搭建

概述

开发有个需求是需要观察记录部分表的变化情况,频繁的去查取很麻烦,所以想要一个binlog订阅,消费binlog来记录变化,考虑到阿里云的产品dts需要收费,所以选择用开源工具canal实现

DTS数据订阅

关于MySQL的binlog订阅,阿里云的数据传输DTS有实现相关功能,就是数据订阅功能

基本的过程就是
1、创建一个数据订阅实例
2、配置数据订阅的源信息和网络类型
3、配置需要订阅的数据类型和订阅对象
4、利用消息订阅等程序进行消费

但是,要钱的,普通规格一个月需要1000多,所以试试开源的canal

canal使用

安装

canal是一个阿里云开源的工具,基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL

安装包下载地址: https://github.com/alibaba/canal/releases

下载上传到服务器上,解压

tar -zxvf canal.deployer-1.1.4.tar.gz

drwxr-xr-x 2 root root     4096 Aug 12 20:05 bin
drwxr-xr-x 5 root root     4096 Aug 12 19:53 conf
drwxr-xr-x 2 root root     4096 Aug 12 14:21 lib
drwxrwxrwx 4 root root     4096 Aug 12 17:53 logs

配置数据库源

example/instance.properties 主要配置数据库的相关信息,我这边的数据源是阿里云的RDS

vi conf/example/instance.properties

考虑到RDS的binlog 只会保留18个小时,有时可能需要到oss上去下载,这里就需要配置ak和实例id。我这里不考虑这个。就不填
# rds oss binlog
canal.instance.rds.accesskey=
canal.instance.rds.secretkey=
canal.instance.rds.instanceId=

这4个参数主要定义了实例连接地址,用户名和密码及编码
canal.instance.master.address=rm-XXXXXXXXX.mysql.rds.aliyuncs.com:3306
canal.instance.dbUsername=canal
canal.instance.dbPassword=XXXX
canal.instance.connectionCharset = UTF-8

用户密码是在控制台直接创建的,目前权限是足够的,不要的去单独加binlog dump线程的权限

show  grants  可以看到相关权限

GRANT PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'

目标表的正则过滤:

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

其他的正则方式如下

1. 所有表:.* or .*\\..*
2. canal schema下所有表: canal\\..*
3. canal下的以canal打头的表:canal\\.canal.*
4. canal schema下的一张表:canal.test1
5. 多个规则组合使用:canal\\..*,mysql.test1,mysql.test2 (逗号分隔)

阿里云mq配置

主要是让开发同学配合知道相关信息

vi conf/canal.properties
#mq的端口
canal.mq.servers = http://XXXXX.mq-internet-access.mq-internet.aliyuncs.com:80

#阿里云的ak for MQ
canal.aliyun.accessKey = LTAI8GNu7sKJU6mY
canal.aliyun.secretKey = dMGJizVkguAuJI9kiBJQbhlmeqscAH

启动

执行启动命令

sh bin/startup.sh

关闭就是 sh bin/stop.sh

日志可以看到相关的启动信息

tail -f  logs/canal.log
2020-08-12 19:38:30.373 [main] INFO  com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[10.1.1.202(10.1.1.202):11111]
2020-08-12 19:38:32.421 [main] INFO  com.alibaba.otter.canal.deployer.CanalStarter - ## the canal server is running now ......

如果有相关的表有修改,队列中就有相关信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值