canal介绍与使用
简介
- canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。
流程
-
1.下载canal.deployer
https://github.com/alibaba/canal/releases/download/canal-1.1.3/canal.deployer-1.1.3.tar.gz -
2.下载canal adapter
https://github.com/alibaba/canal/releases/download/canal-1.1.3/canal.adapter-1.1.3.tar.gz -
3.开启binlog
server-id = 1
binlog_format = ROW
log_bin = mysql_bin -
4.mysql客户端连接后,show variables like ‘log_bin’ 查看是否真正开启binlog
-
5.设置一个拥有replication权限的账户
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@’%’ IDENTIFIED BY ‘canal’;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@‘localhost’ IDENTIFIED BY ‘canal’;
FLUSH PRIVILEGES; -
6.解压canal.deployer用于部署canal
conf/canal.properties是主配置文件,如其中canal.port用以指定服务端监听的端口
conf/example/instance.properties是实例的配置文件,主要配置项
修改instance.properties
canal.instance.mysql.slaveId=2 不能和serverid冲突 canal.instance.dbUsername=canal canal.instance.dbPassword=canal
bin/startup.sh启动,观察logs/canal/canal.log以及logs/example/example.log日志 验证11111端口是否启动成功 -
7.解压canal.adaper用于部署canaladapter 由于canal adapter官方只支持到es6,若要es7,下载修改源代码,修改pom文件内的es版本,然后修改esadapter内245行totalhit这一步,编译打 然后修改配置文件 配置文件如附件,需要修改
canalServerHost: 127.0.0.1:11111
defaultDS:
url: jdbc:mysql://127.0.0.1:3306/demo(数据库名称)?useUnicode=true
username: canal(数据库账号)
password: canal(数据库密码)
-name: es
hosts: 127.0.0.1:9300
properties:
cluster.name: demo-application(es节点名称) -
8.然后在conf/es/目录下可新建demo.yml,并新建es mapper与之对应,启动即可 bin/startup.sh 观察日志 修改数据库后可发现索引已建立