![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
canal学习
普通网友
这个作者很懒,什么都没留下…
展开
-
Databus 深入学习
一、关于databus LinkedIn于2月26日开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据源上捕获数据,当下LinkedIn只开源了Oracle上的连接器。Databus作为LinkedIn生态系统中的一致性保障组件,在低延时的情况下仍然具有高有效性;而其最大的特点莫过于无限制恢复能力及丰富的数据深度处理功能。 二、基于da...原创 2019-12-19 22:31:33 · 1381 阅读 · 0 评论 -
Canal 深入学习
canal概述 概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。 起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数...原创 2019-12-19 21:50:03 · 152 阅读 · 0 评论 -
Canal 源码分析02 -- Canal 代码结构和功能概述
http://www.iocoder.cn/Canal/tianshouzhi/tutorials/ 1.Client:客户端 启动和建立连接,发送和接收数据,核心接口为CanalConnector 2.Client-adapter : 客户端的适配器 3.common : 公用的组件和工具类 4.dbsync: 数据库同步的,包括解析出来的event 5.deployer: ca...原创 2019-06-30 13:54:38 · 289 阅读 · 0 评论 -
Canal 源码分析01 -- Canal 入门
binlog event EventParser EventSink 过滤,路由 EventStore mysql 通过dump协议,不断地从Mysql获取binlog,交给EventParser处理 ++++++++++++++++++++++++++++++++++++++++++++++++++++...原创 2019-06-30 13:51:57 · 162 阅读 · 0 评论 -
Canal 源码分析03 -- 解析binLog
负责解析Mysql的二级制文件binlog成为event 核心类:AbstractEventParser start方法 1. 初始化缓冲队列,然后start()启动 2. 初始化BinLogParser,然后start()启动 3.启动工作线程parseThread 4.开始执行 4.1 先构造Erosa连接 4.2 创造一个心跳线程 4.3 preDump 执行du...原创 2019-06-30 14:05:48 · 1208 阅读 · 0 评论 -
Canal 源码分析 04 sink 实现
一、代码结构如下: 二、先看一下核心接口CanalEventSink,声明了sink方法 直接看sink方法实现 ,调用sinkData方法 1.循环入参的entry,先调用doFilter。判断是否需要过滤,需要过滤,就直接continue 2.判断如果entry的类型是事务begin或者事务end,那么就获取executeTime,并且判断距离上一次事务的时间差,小于配置的...原创 2019-07-20 17:33:27 · 496 阅读 · 0 评论 -
Canal 源码分析 05 store 实现
代码结构 核心类实现MemoryEventStoreWithBuffer,基于内存构建memory store doput 方法 上一节已经分析过 开始分析get方法 1.重入锁 加锁 2.检查是否存在要get的数据,并且数量要大于batchSize 2.1 计算maxAbleSize - currentSize >= batchSize * bufferMem...原创 2019-07-20 17:36:08 · 176 阅读 · 0 评论