canal —— 阿里巴巴mysql数据库binlog的增量订阅消费组件
阿里巴巴mysql数据库binlog的增量订阅&消费组件canal ,转载自 https://github.com/alibaba/canal
最新更新
- canal QQ讨论群已经建立,群号:161559791 ,欢迎加入进行技术讨论。
- 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)
基于日志增量订阅&消费支持的业务:
- 数据库镜像
- 数据库实时备份
- 多级索引 (卖家和买家各自分库索引)
- search build
- 业务cache刷新
- 价格变化等重要业务消息
项目介绍
名称:canal [kə'næl]
译意: 水道/管道/沟渠
语言: 纯java开发
定位: 基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql
关键词: mysql binlog parser / real-time / queue&topic
工作原理
mysql主备复制实现
从上层来看,复制分成三步:
- master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
- slave将master的binary log events拷贝到它的中继日志(relay log);
- slave重做中继日志中的事件,将改变反映它自己的数据。
canal的工作原理:
原理相对比较简单:
- canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
- mysql master收到dump请求,开始推送binary log给slave(也就是canal)
- canal解析binary log对象(原始为byte流)
相关文档
See the wiki page for : wiki文档
wiki文档列表
- Home
- Introduction
- QuickStart
- ClientExample
- AdminGuide
- ClientAPI
- DevGuide
- BinlogChange(Mysql5.6)
- ReleaseNotes
- Download
相关资料:
- ADC阿里技术嘉年华分享ppt (放在google docs上,可能需要FQ): ppt下载
- 与阿里巴巴的RocketMQ配合使用
转载于:https://www.cnblogs.com/huqiang/p/5113486.html
canal —— 阿里巴巴mysql数据库binlog的增量订阅消费组件相关推荐
- CanalSharp-mysql数据库binlog的增量订阅消费组件Canal的.NET客户端
一.前言 CanalSharp是阿里巴巴开源项目mysql数据库binlog的增量订阅&消费组件 Canal 的.NET客户端,关于什么是 Canal?又能做什么?我会在后文为大家一一介绍.C ...
- 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅消费
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...
- [转]基于mysql数据库binlog的增量订阅消费中间件:Canal
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...
- 基于mysql数据库binlog的增量订阅消费
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...
- 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅amp;消费
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增 量变更,不过从2010年开始,阿里系公司开始逐步的 ...
- MySQL增量订阅消费组件Canal POC
POC的目的: 1.与MYSQL的对接方式,配置文档 2.订阅的延迟 3.订阅后宕机消息会不会丢失 4.能不能从指定的点开始重新订阅 5.高并发写入的时候,日志的顺序是否还能保持,不考虑消费的情况订阅 ...
- mysql 分词搜索_实战 | canal 实现Mysql到Elasticsearch实时增量同步
题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...
- 增量同步_实战 | canal 实现Mysql到Elasticsearch实时增量同步
题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...
- Canal 实现 Mysql数据库实时数据同步
简介 1.1 canal介绍 Canal是一个基于MySQL二进制日志的高性能数据同步系统.Canal广泛用于阿里巴巴集团(包括https://www.taobao.com),以提供可靠的低延迟增量数 ...
最新文章
- Apache Kafka源码分析 – Log Management
- Echarts 地理信息可视化:基于地图显示坐标点信息
- vue项目打包部署linux_Vue项目打包部署到Nginx服务器
- SQLSERVER根据字符 切割字符串的方法
- [论文阅读] BCNet: Bidirectional collaboration network for edge-guided salient object detection
- 系统批量运维管理器Fabric详解
- 基于豆瓣影评数据的文本分析系统【数据爬取+数据清洗+数据库存储+LDA主题挖掘+词云可视化】
- 【MicroPython ESP32】ssd1306 0.96“OLED+气象数据中文显示
- 【组队学习】【32期】组队学习内容详情
- 【Salesforce】地理位置情報項目を使って周辺検索 GMaps
- android点击按钮打开蓝牙,Android打开蓝牙的两种方式
- Quoted-printable
- linux磁盘配额步骤,Linux磁盘配额设置及使用
- 怎么知道跟交换机互联的交换机_电话交换机日常怎么维护和保养?
- 合成大西瓜?不如写个可以一起聊天吃瓜放烟花的聊天室
- 爬虫之点触验证码的识别
- FFMPEG学习----解码视频
- 『语音信号处理』语音库 librosa 学习
- 打造室内 “店铺级” 定位的 Petal Maps Platform,正在重塑数字生活新范式
- 支付宝钱包接口开发包2.0标准版接入与使用规则
热门文章
- 阅读英文论文的方法总结(三遍法)
- 【Pytorch神经网络实战案例】03 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-测试方法
- Vue项目中使用百度地图API
- LeetCode 1455. 检查单词是否为句中其他单词的前缀
- 程序员面试金典 - 面试题 01.01. 判定字符是否唯一(位运算,牛)
- 逻辑斯谛回归模型( Logistic Regression,LR) 最大熵模型(Max Entropy,ME)
- LeetCode 35. 搜索插入位置(二分查找)
- 01.神经网络和深度学习 W1.深度学习概论
- LeetCode 98. 验证二叉搜索树(中序遍历)
- 链接聚合是将一组物理接口_500字描述华为VLAN聚合工作原理 你看懂了吗?