canal简介
早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部版本已经支持mysql和oracle部分版本的日志解析,当前的canal开源版本支持5.7及以下的版本(阿里内部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48)
canal可以干嘛:
基于日志增量订阅&消费支持的业务:
数据库镜像
数据库实时备份
多级索引 (卖家和买家各自分库索引)
search build
业务cache刷新
价格变化等重要业务消息
下载地址:链接: https://github.com/alibaba/canal/releases
RDS
有不少公司的生产环境数据库用的是阿里云的RDS,我们知道canal监听我们自己服务器的数据库只需要改改数据库的配置就行了但是RDS怎么改呢接下来让我们开始
1 创建RDS账号
登入到RDS控制台
2.配置canal
进入到usr/local目录下,在该目录下使用如下命令新建canal文件夹
cd /usr/local
ls
mkdir canal
给予权限
//给canal赋予读写权限
chmod 777 canal
//给canal及其以下子目录赋予读写权限
chmod -R 777 canal
使用工具将下载好的canal放置在canal文件下
解压canal的压缩包
tar -zxvf canal.deployer-1.1.4.tar.gz
解压后会出现一些文件夹
- bin
启动和停止的脚本 - conf
配置文件 - lib
一些jar包不用管 - log
存放canal日志启动好后可以到这里来看日志
修改canal的配置文件
进入到conf下的example下面会有一个instance.properties使用vim进行修改
wq保存退出,修改完成后,cd到bin目录下使用如下命令启动canal
./startup.sh
启动完成进入logs下的canal查看日志,如果看到这样的那代表启动成功
查看是否监听成功,如果看到这个,那就代表监听成功
c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^st_aiui.res_channel_resource$|^st_aiui.res_channel$
至此,canal监听RDS成功