一、安装 canal
canal的安装请参考:canal系列—Linux下的安装配置(快速开始)
二、配置 canal.properties 文件
[root@localhost canal]# vim conf/canal.properties
#################################################
######### common argument #############
#################################################
canal.id= 128 # 指定唯一的server id
canal.ip= 192.168.134.128 # 指定本机的ip地址,即canal所在机器的ip地址
canal.port= 11111 # 指定监听的端口三、启动 canal
[root@localhost canal]# ./bin/startup.sh查看日志信息:
[root@localhost canal]# vim logs/canal/canal.log可以看到,服务启动成功,并且监听在我们配置地址上。
四、在 Eclipse 中创建 maven 工程
下载阿里提供的一个客户端例子:https://github.com/alibaba/canal/archive/canal-1.0.19.zip,导入到Eclipse中。
打开类 com.alibaba.otter.canal.example.SimpleCanalClientTest ,修改 ip 地址为 canal 中配置的 ip 地址
五、运行Client
首先启动Canal Server。
启动Canal Client后,从控制台看不到任何输出信息(此时代表当前数据库无变更数据),说明没有报错,并且正在监听。
六、触发数据库变更
在 test 数据库中执行如下语句:
CREATE TABLE `xdual` (
`ID` INT (11) NOT NULL AUTO_INCREMENT,
`X` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
) ENGINE = INNODB AUTO_INCREMENT = 3 DEFAULT CHARSET = utf8;
insert into xdual(id,x) values(null,now());可以从控制台中看到:
****************************************************
* Batch Id: [3] ,count : [1] , memsize : [271] , Time : 2017-12-13 09:43:07
* Start : [mysql-binlog.000003:443:1513129388000(2017-12-13 09:43:08)]
* End : [mysql-binlog.000003:443:1513129388000(2017-12-13 09:43:08)]
****************************************************
----------------> binlog[mysql-binlog.000003:443] , name[test,xdual] , eventType : CREATE , executeTime : 1513129388000 , delay : -934ms
sql ----> CREATE TABLE `xdual` (
`ID` INT (11) NOT NULL AUTO_INCREMENT,
`X` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
) ENGINE = INNODB AUTO_INCREMENT = 3 DEFAULT CHARSET = utf8
****************************************************
* Batch Id: [4] ,count : [3] , memsize : [155] , Time : 2017-12-13 09:43:13
* Start : [mysql-binlog.000003:714:1513129394000(2017-12-13 09:43:14)]
* End : [mysql-binlog.000003:888:1513129394000(2017-12-13 09:43:14)]
****************************************************
================> binlog[mysql-binlog.000003:714] , executeTime : 1513129394000 , delay : -967ms
BEGIN ----> Thread id: 11
----------------> binlog[mysql-binlog.000003:844] , name[test,xdual] , eventType : INSERT , executeTime : 1513129394000 , delay : -963ms
ID : 3 type=int(11)
X : 2017-12-13 09:43:14 type=timestamp
----------------
END ----> transaction id: 61
================> binlog[mysql-binlog.000003:888] , executeTime : 1513129394000 , delay : -958ms版权声明:本文为u012758088原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。