
canal源码解析
文章平均质量分 88
sky若沉默
人生如逆风飞翔。
展开
-
canal 源码解析(1)-启动篇(3)
1.0)meta 为一个接口,有多种实现方式,if (!metaManager.isStart()) { metaManager.start();}因为配置文件已经指定了实现模式,所以进入filemixedmetamanager模式先看一下整个start方法public void start() { super.start(); Assert.notNull(dataDi...原创 2018-06-04 18:12:09 · 3606 阅读 · 1 评论 -
canal 源码解析(1)-启动篇(1)
1 .源码地址:https://github.com/alibaba/canal 看下是否是这个canal 若本地安装了git 右键bash ,然后窗口输入以下命令 git clone https://github.com/alibaba/canal.git2. 启动方式,在GitHub上已经有了windos 和服务器的方式,我就不具体介绍了,现在介绍一种本地debug...原创 2018-05-30 11:05:06 · 3743 阅读 · 0 评论 -
canal 源码解析(1)-启动篇(2)
1)先看一下整个start方法构成 public void start() throws Throwable { logger.info("## start the canal server[{}:{}]", ip, port); // 创建整个canal的工作节点 final String path = ZookeeperPathUtils.getCanalCl...原创 2018-06-01 10:45:52 · 1176 阅读 · 0 评论 -
canal 源码解析(2)-数据流转篇(2)
一、msyql内部指令操作1)接收msyql发送过来的报文,先获取头部。header = PacketManager.readHeader(connector.getChannel(), 4);public static HeaderPacket readHeader(SocketChannel ch, int len) throws IOException { HeaderPacket ...原创 2018-06-25 18:04:19 · 1598 阅读 · 0 评论 -
canal 源码解析(2)-数据流转篇(1)
1) 上一篇 只是正常启动,但是线程是等待中,没有数据接入处理。现在开始模拟同步数据,并分析其中原理 如上一片线程阻塞点位于:AbstractEventParser类的start方法2)mysql主从复制重点就在这里了,当前因为 startposition里部位null,// 4. 开始dump数据// 判断所属instance是否启用GTID模式,是的话调用ErosaConnection中G...原创 2018-06-19 09:53:23 · 1058 阅读 · 0 评论 -
canal 源码解析(2)-数据流转篇(3)
event-————》entry一、准备 先确认下当前位点信息,最新位点信息是1601,执行命令:show BINLOG EVENTS in "mysql-bin.000031";而项目目前位点信息是761 ,和1601 差别太多,是因为中间多了,插入,更新,删除操作。如下 二、解析插入,更新,删除操作事件。 2.1 ANONYMOUS_GTID_LOG_EVENT=34 该事件是mysq...原创 2018-06-26 17:27:46 · 2509 阅读 · 1 评论