使用canal通过mysql的binlog日志对mysql进行监控

皮一万。。。

        很久以前。。。。。。。。。。。。。。。。很好吃!!!(开玩笑 O(∩_∩)O哈哈~)

正文

        前段时间手里有个项目,需要读取 mysql 数据库的 binlog 日志对mysql进行监控,一时间感觉头皮发麻(这个真不会),于是乎询问度娘,度娘直接给出了一个近乎于完整的项目直接就可以使用,那就是 canal 组件。

        先来看一下网上对 canal 的说明:点我看原理

        下载地址:

            开发部署服务:

            开发实例项目:

        说明:我理解的是下载的maven项目只是对逻辑处理的一个项目,而canal 部署开发包是用来启动 canal 服务用的,要使用 canal 对数据库进行监控

①:先配置好 canal 服务,启动服务;②:找到程序的入口,运行

一、那么,先来看一下 canal 服务的配置以及启动

        下载好的开发服务部署包,直接解压



        进入 canal.deployer 这个文件中,能够看到下面的目录结构:



        进入 conf 这个文件中,能够看到下面的目录结构:



        spring文件夹中的配置文件一般情况下默认即可,如果有特殊的需求可以自行更改。

        canal.properties 文件中写的是canal 服务器需要的一些配置,修改的地方不多



        example 文件中写的是canal 服务器中配置实例的地方



        h2.mv.db 和 meta.dat 是对操作mysql数据库的记录(删除这两个文件不会对mysql数据库中的数据有任何影响,只会对基于canal 服务而开发的项目产生影响,数据缺失),instance.properties 是实例的属性文件


        这里有我总结的 canal 监控 mysql 数据库的使用说明:点我下载使用说明

        按照步骤配置即可

二、接下来就是开发实例项目了

        下载下来的 canal 是一个maven项目,直接将项目导入到 idea 中然后正常配置maven项目就可以



        项目中,找到example这个目录,开发的逻辑全都在这里



         SimpleCanalClientTest 这个类继承了AbstractCanalClientTest ,成为程序的入口,启动新的线程来读取mysql的binlog日志,进而监控数据库(也可以自己写一个类继承 AbstractCanalClientTest ),在AbstractCanalClientTest 这个类中,有一个process方法,这个方法就是用来监控数据库并处理数据的



        实际操作的话,可以同步更新redis缓存、实时更新监控到的某个值的状态、插入到数据库中一条新纪录等等都可以实现了,具体逻辑就要看开发需求了。

        至此,我利用 canal 服务监控mysql数据库所学习掌握到的东西就都写完了

引用http://agapple.iteye.com/blog/1796633

感谢!

结束

转载于:https://www.cnblogs.com/zhangtianshi/articles/9140231.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值