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

阿里巴巴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文档列表

  • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV的滤波与卷积

目录 预备知识 滤波、核和卷积 边界外推和边界处理 阈值化操作 Otsu算法 自适应阈值 平滑 简单模糊和方框型滤波器 中值滤波器 高斯滤波器 双边滤波器 导数和梯度 索贝尔导数 Scharr滤波器 拉普拉斯变换 图像形态学 膨胀和腐蚀 通用形态学函数 开操作和闭操…

中国科协发布20个重大科学问题和工程技术难题

来源:晓艳的科技坊6月30日,中国科协在第二十一届中国科协年会闭幕式上发布了2019年20个对科学发展具有导向作用、对技术和产业创新具有关键作用的前沿科学问题和工程技术难题。   中国科学院院士、中国科协名誉主席韩启德表示,中国科协重大…

latex报错:missing $ inserted

原因是因为_被识别为特殊字符,在_前面加上转移符号\,即\_

OpenCV常见的图像变换

拉伸、收缩、扭曲和旋转 最简单的图像变换是调整图像大小,使其变大或变小。但实际操作时要比想象的复杂一些,因为调整大小带来了像素如何插值(放大)或合并(减少)的问题。 均匀调整 cv::resize() void c…

latex正文显示运算符

以乘号为例,乘号的显示方法为\times,比如a\timesb,就会显示ab,但是如果在正文中这样写会报错,需要改为这样写: a$\times$b

边缘计算对于工业物联网的重要性

来源:物联网世界随着物联网的发展,工业制造设备所产生的数据量将越来越多。如果这些数据都要放到云端处理,就需要无穷无尽的频谱资源、传输带宽和数据处理能力,“云”难免不堪重负,此时就需要边缘计算来分担云计算的压…

老李分享:基于图像识别的跨平台的手机自动化测试方案

老李分享:基于图像识别的跨平台的手机自动化测试方案 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:90…

MATLAB保存图片时字体自动变大

因为设置了导出的最小字体,在图形页面按照下面设置:文件——>导出设置——>字体——>最小为**磅

全新算法助机器学习抵抗干扰

来源:科技日报 机器学习模型受到攻击将产生严重的后果,但如果对这一情形提前预防呢?就像人类针对即将到来的病毒去接种疫苗一样。据澳大利亚联邦科学与工业研究组织(CSIRO)官方网站消息,该机构的一个研究团…

Robot Framework: 自定义自己的python库

利用Robot Framework编写测试用例,往往需要开发自己的关键字,有的关键字需要通过自己编写python代码来实现。这在rf中,就需要自己定义python库。这个过程其实不复杂,本文来介绍下。 1、在python安装目录下的 Lib\site-packages 目…

MATLAB自定义画布大小

在画图时首行加入这句,其中 0.7,0.6是画布的长和宽,可以根据想要的大小设置 figure(units,normalized,position,[0.1,0.1,0.7,0.6])

磁共振成像技术发展简史丨科学史

来源:中国科学院苏州生物医学工程技术研究所编者按:核磁共振是一种常见的影像检查方式。全球首次为病人做核磁共振检查是在1977年7月3日。该技术是基于物理学家拉比有关测量原子核在磁场中性质的研究发展而来的。拉比在1988年去世前不久,也使…

动态规划算法的应用模型

线性模型 【例题】在一个夜黑风高的晚上&#xff0c;有n&#xff08;n < 50&#xff09;个小朋友在桥的这边&#xff0c;现在他们需要过桥&#xff0c;但是由于桥很窄&#xff0c;每次只允许不大于两人通过&#xff0c;他们只有一个手电筒&#xff0c;所以每次过桥的两个人需…

PPT导出图片大小设置

PPT可以自行设置导出图片的大小&#xff0c;在设计——>页面设置

最先进的AI还不如动物聪明?首届AI-动物奥运会英国开赛!

来源&#xff1a;animalaiolympics,新智元【导读】目前&#xff0c;即使是最先进的AI智能体&#xff0c;在适应环境变化的能力方面&#xff0c;还无法与动物相提并论。听上去很不可思议对不对&#xff0c;不服来比比看&#xff1f;日前&#xff0c;动物-AI奥运会正式拉开帷幕&a…

latex插入空白行

1.~\\ 2.\\[行距] 例如&#xff1a;\\[3pt]

background-size 兼容ie8以下浏览器的方法

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(srcimgs/section-1.png, sizingMethodscale); -ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(srcimgs/section-1.png, sizingMethodscale)";转载于:https://www.cnblogs.com/wend…

一文尽览5G全产业链及新机遇

来源&#xff1a;5G产业圈5G牌照的发放&#xff0c;对通信产业发展具有重要的战略意义。这不仅仅是为了5G商用&#xff0c;更赋予了多重目的。比如为了利用5G技术推动经济结构创新、促进经济增长、帮助华为中兴、结交爱立信诺基亚&#xff0c;分化高通英特尔……甚至可能是为了…

LATEX调整公式、图片与正文间距离,文字间距离,调整空白大小

一、LATEX调整公式与正文间距离&#xff0c;调整空白大小&#xff1a; 调整空白命令&#xff1a; \setlength{\abovedisplayskip}{3pt} %%% 3pt 个人觉得稍妥&#xff0c;可自行设置 \setlength{\belowdisplayskip}{3pt} 用法&#xff0c;放在各种公式命令的适当位置&#xf…

UPX 加壳工具:The Ultimate Packer for eXecutables

UPX (the Ultimate Packer for eXecutables)是一款先进的可运行程序文件压缩器。压缩过的可运行文件体积缩小50%-70% &#xff0c;这样降低了磁盘占用空间、网络上传下载的时间和其他分布以及存储费用。通过 UPX 压缩过的程序和程序库全然没有功能损失和压缩之前一样可正常地运…