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