概述
平时在开发中会通过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