闲来无事想起公司一直都有数据同步的业务代码,每次都是定时任务扫描,感觉方式不够优雅[调皮]
通过微信公众号阿里大神推荐文章了解到canal开源项目
详细介绍可以去github
本文主要讲述搭建尝鲜遇到的坑,阿里文章相对比较完善但是照着github的步骤还是不一定能跑的通
下面开始我的悲惨经历,仅供参考
1.部署mysql服务,这里我采用docker安装比较便捷,这一步有问题可以联系我QQ单独私聊,比较简单不做赘述
mysql服务开启后保证开启binlog,修改为ROW模式 server_id设置为1 后面的canal节点不要设置1即可
编辑 /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-bin=mysql-bin
binlog-format=ROW
server_id=1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
2.按照官网步骤下载canal
然后解压
第一个坑:
vi conf/canal.properties
放开 canal.instance.parser.parallelThreadSize 这个属性
官网的简单介绍没这个步骤导致很是有点坑
第二个坑
log_bin必须为ON
然后 按部就班拷贝client的示例代码即可
简单介绍些client代码
希