canal 搭建

由于logstash同步数据的方式,针对增量友好,而对于变动的量不是很友好,所以考虑使用canal同步会经常变更的数据。
canal同步原理为利用MySQL数据库主从同步机制,模拟canal为一个slave节点,欺骗master节点去推送binlog到slave节点。
具体网上太多,这里就不赘述了。
考虑到binlog每秒的量太大了,所以引入MQ消息队列做一步缓冲。
下面开始正式步骤:
MySQL源端准备

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

JAVA环境需求:java (>=1.5)

一、安装canal
canal官网:https://github.com/alibaba/canal
下载地址:https://github.com/alibaba/canal/releases
1、下载&解压缩

cd /data/soft
wget https://github.com/alibaba/canal/releases/download/canal-1.1.7/canal.deployer-1.1.7.tar.gz
mkdir canal
tar -xvf canal.deployer-1.1.7.tar.gz -C canal
cd canal

2、配置修改

vim conf/example/instance.properties
## mysql serverId
canal.instance.mysql.slaveId = 1234
#position info,需要改成自己的数据库信息
canal.instance.master.address = 127.0.0.1:3306 
canal.instance.master.journal.name = 
canal.instance.master.position = 
canal.instance.master.timestamp = 
#canal.instance.standby.address = 
#canal.instance.standby.journal.name =
#canal.instance.standby.position = 
#canal.instance.standby.timestamp = 
#username/password,需要改成自己的数据库信息
canal.instance.dbUsername = canal  
canal.instance.dbPassword = canal
canal.instance.defaultDatabaseName =
canal.instance.connectionCharset = UTF-8
#table regex
canal.instance.filter.regex = .\*\\\\..\*

3、启动

sh bin/startup.sh

4、查看 server 日志

vi logs/canal/canal.log</pre>

5、查看 instance 的日志

vi logs/example/example.log

6、关闭

sh bin/stop.sh