没有合适的资源?快使用搜索试试~ 我知道了~
Canal是阿里巴巴旗下的一款开源项目,利用Java开发。主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费,目前主要支持MySQL。 GitHub地址:https://github.com/alibaba/canal 在介绍Canal内部原理之前,首先来了解一下MySQL Master/Slave同步原理: MySQL master启动binlog机制,将数据变更写入二进制日志(binary log, 其中记录叫做二进制日志事件binary log events,可以通过show binlog events进行查看)MySQL slave(I/O thread)将mast
资源详情
资源评论
资源推荐

详解监听详解监听MySQL的的binlog日志工具分析:日志工具分析:Canal
Canal是阿里巴巴旗下的一款开源项目,利用Java开发。主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费,目前主要支持MySQL。
GitHub地址:https://github.com/alibaba/canal
在介绍Canal内部原理之前,首先来了解一下MySQL Master/Slave同步原理:
MySQL master启动binlog机制,将数据变更写入二进制日志(binary log, 其中记录叫做二进制日志事件binary log events,可以通过show binlog events进行查看)MySQL slave(I/O thread)
将master的binary log events拷贝到它的中继日志(relay log)MySQL slave(SQL thread)重放relay log中事件,将数据变更反映它自己的数据中
Canal工作原理:工作原理:
Canal模拟MySQL slave的交互协议,伪装自己为MySQL slave,向MySQL master发送dump协议MySQL master收到dump请求,开始推送binary log给slave(也就是canal)Canal解析binary
log对象(原始为byte流)
简而言之,Canal是通过模拟成为MySQL的slave,监听MySQL的binlog日志来获取数据。当把MySQL的binlog设置为row模式以后,可以获取到执行的每一个Insert/Update/Delete的脚本,以及
修改前和修改后的数据,基于这个特性,Canal就能高效的获取到MySQL数据的变更。 Canal架构:
说明: server代表一个Canal运行实例,对应于一个jvm instance对应于一个数据队列(1个server对应1..n个instance)















weixin_38553431
- 粉丝: 6
- 资源: 901

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0