阿里巴巴mysql数据库binlog的增量订阅&消费组件canal ,转载自  https://github.com/alibaba/canal

最新更新

  1. canal QQ讨论群已经建立,群号:161559791 ,欢迎加入进行技术讨论。
  2. canal消费端项目开源: Otter(分布式数据库同步系统),地址:https://github.com/alibaba/otter

背景

早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。

ps. 目前内部版本已经支持mysql和oracle部分版本的日志解析,当前的canal开源版本支持5.6及以下的版本(阿里内部mysql 5.6.10, mysql 5.5.18和5.1.40/48)

基于日志增量订阅&消费支持的业务:

  1. 数据库镜像
  2. 数据库实时备份
  3. 多级索引 (卖家和买家各自分库索引)
  4. search build
  5. 业务cache刷新
  6. 价格变化等重要业务消息

项目介绍

名称:canal [kə'næl]

译意: 水道/管道/沟渠

语言: 纯java开发

定位: 基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql

关键词: mysql binlog parser / real-time / queue&topic

工作原理

mysql主备复制实现


从上层来看,复制分成三步:

  1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
  2. slave将master的binary log events拷贝到它的中继日志(relay log);
  3. slave重做中继日志中的事件,将改变反映它自己的数据。

canal的工作原理:

原理相对比较简单:

  1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
  2. mysql master收到dump请求,开始推送binary log给slave(也就是canal)
  3. canal解析binary log对象(原始为byte流)

相关文档

See the wiki page for : wiki文档

wiki文档列表

相关资料:

  • ADC阿里技术嘉年华分享ppt (放在google docs上,可能需要FQ): ppt下载
  • 与阿里巴巴的RocketMQ配合使用

转载于:https://www.cnblogs.com/huqiang/p/5113486.html

canal —— 阿里巴巴mysql数据库binlog的增量订阅消费组件相关推荐

  1. CanalSharp-mysql数据库binlog的增量订阅消费组件Canal的.NET客户端

    一.前言 CanalSharp是阿里巴巴开源项目mysql数据库binlog的增量订阅&消费组件 Canal 的.NET客户端,关于什么是 Canal?又能做什么?我会在后文为大家一一介绍.C ...

  2. 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅消费

    背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...

  3. [转]基于mysql数据库binlog的增量订阅消费中间件:Canal

    背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...

  4. 基于mysql数据库binlog的增量订阅消费

    背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...

  5. 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅amp;消费

    背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增 量变更,不过从2010年开始,阿里系公司开始逐步的 ...

  6. MySQL增量订阅消费组件Canal POC

    POC的目的: 1.与MYSQL的对接方式,配置文档 2.订阅的延迟 3.订阅后宕机消息会不会丢失 4.能不能从指定的点开始重新订阅 5.高并发写入的时候,日志的顺序是否还能保持,不考虑消费的情况订阅 ...

  7. mysql 分词搜索_实战 | canal 实现Mysql到Elasticsearch实时增量同步

    题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...

  8. 增量同步_实战 | canal 实现Mysql到Elasticsearch实时增量同步

    题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...

  9. Canal 实现 Mysql数据库实时数据同步

    简介 1.1 canal介绍 Canal是一个基于MySQL二进制日志的高性能数据同步系统.Canal广泛用于阿里巴巴集团(包括https://www.taobao.com),以提供可靠的低延迟增量数 ...

最新文章

  1. Apache Kafka源码分析 – Log Management
  2. Echarts 地理信息可视化:基于地图显示坐标点信息
  3. vue项目打包部署linux_Vue项目打包部署到Nginx服务器
  4. SQLSERVER根据字符 切割字符串的方法
  5. [论文阅读] BCNet: Bidirectional collaboration network for edge-guided salient object detection
  6. 系统批量运维管理器Fabric详解
  7. 基于豆瓣影评数据的文本分析系统【数据爬取+数据清洗+数据库存储+LDA主题挖掘+词云可视化】
  8. 【MicroPython ESP32】ssd1306 0.96“OLED+气象数据中文显示
  9. 【组队学习】【32期】组队学习内容详情
  10. 【Salesforce】地理位置情報項目を使って周辺検索 GMaps
  11. android点击按钮打开蓝牙,Android打开蓝牙的两种方式
  12. Quoted-printable
  13. linux磁盘配额步骤,Linux磁盘配额设置及使用
  14. 怎么知道跟交换机互联的交换机_电话交换机日常怎么维护和保养?
  15. 合成大西瓜?不如写个可以一起聊天吃瓜放烟花的聊天室
  16. 爬虫之点触验证码的识别
  17. FFMPEG学习----解码视频
  18. 『语音信号处理』语音库 librosa 学习
  19. 打造室内 “店铺级” 定位的 Petal Maps Platform,正在重塑数字生活新范式
  20. 支付宝钱包接口开发包2.0标准版接入与使用规则

热门文章

  1. 阅读英文论文的方法总结(三遍法)
  2. 【Pytorch神经网络实战案例】03 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-测试方法
  3. Vue项目中使用百度地图API
  4. LeetCode 1455. 检查单词是否为句中其他单词的前缀
  5. 程序员面试金典 - 面试题 01.01. 判定字符是否唯一(位运算,牛)
  6. 逻辑斯谛回归模型( Logistic Regression,LR) 最大熵模型(Max Entropy,ME)
  7. LeetCode 35. 搜索插入位置(二分查找)
  8. 01.神经网络和深度学习 W1.深度学习概论
  9. LeetCode 98. 验证二叉搜索树(中序遍历)
  10. 链接聚合是将一组物理接口_500字描述华为VLAN聚合工作原理 你看懂了吗?