2019独角兽企业重金招聘Python工程师标准>>>

这是Canal在新版本引入的一个内容,主要是为了解决由于历史的DDL导致表结构与现有表结构不一致,导致的同步失败的问题。采用的是Druid和Fastsql,来记录表结构到DB中,如果需要进行回滚时,得从DB中根据时间点去查到对应的库表结构,然后进行业务的处理。也就是,如果我们想要这样的效果,需要开启TSDB的功能,同时要新增库表来记录表结构的变更。

这个基本上是在parser启动时,寻找位点时需要的。当然在系统启动的时候,会将库表的信息写入到DB中,然后定时24小时写入一次。另外就是在发生了DDL时,会更新表结构。

我们来看下他的类图。

一张表记录的是表结构,加上了时间,另一张记录的是当时的DDL语句。在进行回溯的时候,直接根据时间戳和binlog文件名来进行寻找即可找到。当然这些数据也会在内存中保存一份,加快速度。

具体的介绍可以见这个链接https://github.com/alibaba/canal/wiki/TableMetaTSDB。

转载于:https://my.oschina.net/nuaazhaofeng/blog/1821761

【Canal源码分析】TableMetaTSDB相关推荐

  1. Canal源码分析deployer模块

    canal有两种使用方式:1.独立部署 2.内嵌到应用中. deployer模块主要用于独立部署canal server.关于这两种方式的区别,请参见server模块源码分析.deployer模块源码 ...

  2. 【转】canal源码分析

    canal源码分析,canal server源码分析,canal deployer源码分析.转载保留记录.当做笔记.侵权告知. 以下为转载内容 早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署 ...

  3. 【Canal源码分析】Sink及Store工作过程

    一.序列图 二.源码分析 2.1 Sink Sink阶段所做的事情,就是根据一定的规则,对binlog数据进行一定的过滤.我们之前跟踪过parser过程的代码,发现在parser完成后,会把数据放到一 ...

  4. Redis分布式锁解析源码分析

    Redis分布式锁解析&源码分析 概述 实战 简单的分布式锁 Redisson实现分布式锁 Redission源码分析 构造方法 获取锁lock 解锁 锁失效 红锁 案例分析 原始的写法 进化 ...

  5. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  6. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) SpringBo ...

  7. SpringBoot-web开发(二): 页面和图标定制(源码分析)

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) 目录 一.首页 1. 源码分析 2. 访问首页测试 二.动态页面 1. 动态资源目录t ...

  8. SpringBoot-web开发(一): 静态资源的导入(源码分析)

    目录 方式一:通过WebJars 1. 什么是webjars? 2. webjars的使用 3. webjars结构 4. 解析源码 5. 测试访问 方式二:放入静态资源目录 1. 源码分析 2. 测 ...

  9. Yolov3Yolov4网络结构与源码分析

    Yolov3&Yolov4网络结构与源码分析 从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗. 文章目录 论文汇总 ...

最新文章

  1. 未来几年自动驾驶预测(下)
  2. 汉语是世界上唯一一种面向对象的高级语言
  3. 第 21 章 radiusd - Authentication, Authorization and Accounting server
  4. 如何用babel将ES6转换
  5. Octave matlab中运行.m文件方式对比
  6. python可以调用windows资源吗_如何在Windows上用Python调用WinRar?还有问题吗
  7. 数理思维这样培养才有效,从小就赢在方法上,每本不足3元!!
  8. 记录关于vs2008 和vs2015 的报错问题
  9. nodejs的mysql初始化
  10. 使用UrlRewriteFilter对url进行更替
  11. UIScrollerView ,UIPageControl混搭使用,添加定时器,无限循环滚动
  12. 【5G会话管理】UE IP地址的管理
  13. postgresql中recovery.conf分析
  14. 解决kubernetes启动容器时,容器一直是ContainerCreating不能running
  15. java上传文件怎么设置成777权限_777权限是什么意思?文件夹权限为777如何修改设置?...
  16. Python实现视频转 gif 动图
  17. Win32 游戏开发:贪吃蛇 上篇
  18. 黄金分割法python实现
  19. 上古卷轴5mo初始化python失败_《上古卷轴5》MO管理器设置方法初级教程 MO管理器怎么设置...
  20. spooling 技术工作原理

热门文章

  1. android日志收集存入mysql_rsyslog+analyzer+mysql实现日志收集展示
  2. python将一组数据转化为列表_python如何将一个全部为int的列表,转化为全部为str的列表...
  3. 上面两点下面一个三角形_这种胖胖的圆角三角形,在PPT里居然有这么多种画法!...
  4. 求栈中元素个数算法_每日算法系列【LeetCode 315】计算右侧小于当前元素的个数...
  5. 图像降噪算法——DnCNN / FFDNet / CBDNet / RIDNet / PMRID / SID
  6. 【完结】12篇GAN的优化文章大盘点,浓浓的数学味儿
  7. 【图像分类】从数据集和经典网络开始
  8. 【AI-1000问】为什么深度学习图像分类的输入多是224*224
  9. WINDOWS 逻辑坐标 设备坐标 屏幕坐标 客户区坐标
  10. CMDB收集资产脚本