开源组件canal,读取mysql的binlog

1从github上下载canal,https://github.com/alibaba/canal/tree/canal-1.0.25,并mvn package。
在deployer目录下找到部署canal的包。
说明文档:https://github.com/alibaba/canal/wiki/Introduction (最好文档莫过于官方文档)

2mysql开启binlog日志,并且创建用户canal。

3配置canal的slaveid(canal模拟的是mysql的slave)以及连接的用户名和密码
3.1配置F:\canal.deployer-1.0.25\conf\example\instance.properties,主要配置连接mysql的ip,端口,用户名,密码。

3.2配置F:\canal.deployer-1.0.25\conf\canal.properties,主要配置canal自身的属性(canal.id,canal.ip,canal.port)以及加载的spring配置文件,读取的数据库配置文件(mysql-tsdb.xml),以及位点的存储位置配置文件(file-instance.xml或者default-instance.xml)。
file-instance.xml:所有的组件(parser , sink , store)都选择了基于file持久化模式,注意,不支持HA机制;特点:支持单机持久化;场景:生产环境,无高可用性集群需求,简单可用.
default-instance.xml:所有的组件(parser , sink , store)都选择了持久化模式,目前持久化的方式主要是写入zookeeper,保证数据集群共享;特点:支持高可用性集群;场景:生产环境,集群化部署(如果使用file-instance.xml,则读取binlog之后canal会生成一个meta.dat的文件来记录当前读取到binlog的位置信息)。

4启动canal。(F:\canal.deployer-1.0.25\bin\startup.bat)

5java连接canal。
参考canal组件的API文档:https://github.com/alibaba/canal/wiki/ClientAPI 以及example示例(AbstractCanalClientTest,SimpleCanalClientTest)。

 

打印的获取到的binlog信息

猜你喜欢

转载自www.cnblogs.com/dhsunny/p/8995990.html