概述
平时在开发中会通过logback打印一些开发日志,有时也会需要记录一些业务日志,简单的就直接用log记录一下,但是系统中需要记录日志的地方越来越多时,不能每个地方都写一套log记录;
由于平常用的大多都是mysql,那么就可以监听binlog,来记录表中数据的变化;
cannal是阿里开源的一个不错的选择;
canal服务本身只是一个模拟mysql slave的应用,真正进行数据分发处理的是server下的instance,一个server下可以对应多个instance(这一点在配置上也有提现,一个server连接一个mysql实例,server下的instance配置mysql实例下对应的具体db和table)
环境
jdk:1.8
ubuntu:18.04
部署及配置
github地址
https://github.com/alibaba/canal
找个稳定的releas包下载下

admin部署配置
admin是web界面管理服务,下载解压后,需要初始化sql,然后修改配置文件中的db信息,指向对应的db;
canal版本,要求>=1.1.4
初始化sql

修改db配置

启动成功

admin web配置
需要先配置并启动canal server
下面的canal server配置ok后,这里进入页面会出现注册到admin的server的信息;
然后直接新建instance,修改下mysql slave id(不能重复),然后修改下db的连接信息,然后启动即可;


启动成功

server部署配置
下载并解压好deployer包,里面有2块关键内容,一块是instance配置,即实例配置(后续有多个实例的话会建立多个文件夹,这里下载后给了一个demo实例,文件夹名字为example),还有一块则是公共配置
canal server配置
一般环境中都会有多个网卡,这个时候需要指定下server注册到admin的ip;调整下对应的配置即可;注意启动的时候需要指定local,这样才会将local中的配置覆盖到canal.properties中去;
bash startup.sh local


instance启动demo
先编辑下example文件夹下的配置文件,然后在bin下启动,看下日志是否启动ok


启动成功

参考博文
https://www.cnblogs.com/CZQ-Darren/p/14717521.html
https://zhuanlan.zhihu.com/p/590705531



















