首页 > 其他分享 >【Canal】Canal快速入门

【Canal】Canal快速入门

时间:2024-03-26 21:33:25浏览次数:35  
标签:Canal canal slave log binary MySQL 日志 快速 入门

canal介绍

  

 

  canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费

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

  基于日志增量订阅和消费的业务包括

  • 数据库镜像
  • 数据库实时备份
  • 索引构建和实时维护(拆分异构索引、倒排索引等)
  • 业务 cache 刷新
  • 带业务逻辑的增量数据处理

  当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x

canal工作原理

MySQL主备复制原理

  • MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看)
  • MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log)
  • MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据

  可以参考:【Mysql】主从同步配置

canal 工作原理

  • canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
  • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
  • canal 解析 binary log 对象(原始为 byte 流)

 

标签:Canal,canal,slave,log,binary,MySQL,日志,快速,入门
From: https://www.cnblogs.com/h--d/p/18097639

相关文章

  • 「Go开源包」snappy:google开源的快速、无损压缩包
    大家好,我是渔夫子。今天给大家推荐的是一个google开源的快速、无损的压缩包:snappy。snappy算法是google开源的。该包是google使用go语言来实现的。项目地址如下:项目地址:https://github.com/golang/snappy星标:1.4k使用者:97.7k简介该包的目标并不是最大化的压缩比例,也不是和......
  • 深度学习之快速配环境方法
    在学习深度学习的过程中,针对于不同的网络模型,常常需要配置与之对应的代码环境,结合互联网和师门同学的经验,这里给出了我自己最顺手的环境配置方法。参考环境配置python3.8 cuda11.3.1 cudnn8.2.1 torch1.12.0torchvision0.13.0操作步骤注:以下操作均在Anaco......
  • Oracle数据库入门第三课(函数)
    前面二白讲了一些简单的查询语句,仅仅知道查询语句的语法是不够的,要想实现更多的需求,更重要的是函数的使用,这节课我们简单说一下一些函数的使用。一、函数的分类什么叫做函数?函数就是用来实现某种功能的,提前声明好的代码块分类:•系统函数         ‣单行函数......
  • 【CMake】CMake从入门到实战系列(三)——CMake常用指令
    文章目录一、out-of-source构建二、指令详解1、add_library【1】基本语法【2】参数含义【3】示例2、target_link_libraries【1】基本语法【2】参数含义【3】示例3、link_directories【1】基本语法【2】参数含义【3】示例4、include_directories【1】基本语法【2】参......
  • ArcGIS Desktop使用入门(二)常用工具条——地理配准
    系列文章目录ArcGISDesktop使用入门(一)软件初认识ArcGISDesktop使用入门(二)常用工具条——标准工具ArcGISDesktop使用入门(二)常用工具条——编辑器ArcGISDesktop使用入门(二)常用工具条——数据驱动页面ArcGISDesktop使用入门(二)常用工具条——基础工具ArcGISDesktop......
  • python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
    本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。01.python由来与发展介绍02.项目开发流程第一章markdown编辑器01.markdown基本语法02.Typora简介与安装03.Windows上gitee+Typora设置图床04.macOS上gitee+Typora设置图床第二章计算机......
  • 如何才能Python快速入门?
    无论是哪种编程语言,最开始往往是最难的,那么今天,我就来谈谈如何才能快速入门python编程。设定目标如果你学python是想找工作的话,可以先看看对于python程序员的相关招聘要求,比如这是我在某网找到的一个有关初级Python程序员的招聘要求,可以看看:熟悉Python及常用的Web开发框......
  • 善用AI:智能写作与快速访问的双重优势(附镜像站汇总)
    随着人工智能技术的不断发展,我们的日常工作和学习方式正在经历一场革命。在众多创新工具中,GPT(GenerativePre-trainedTransformer)已经成为了一个耀眼的明星,而这个月Claude3的登场,再次将人工智能推向新一轮高峰。为什么要使用AI? 提高效率GPT、Claude等,作为先进的自然语言......
  • 别再花钱报班了,这篇文章带你入门Python
    最近有许多小伙伴后台联系我,说目前想要学习Python,但是没有一份很好的资料入门。一方面的确现在市面上Python的资料过多,导致新手会不知如何选择,另一个问题很多资料内容也很杂,从1+1到深度学习都包括,纯粹关注Python本身语法的优质教材并不太多。刚好我最近看到一份不错的英文P......
  • 如何快速上手Vue框架:从零开始的Vue之旅
    引言Vue.js是一个渐进式JavaScript框架,用于构建用户界面。它易于上手,同时提供了强大的工具和功能,使得开发者能够快速构建复杂的单页应用程序(SPA)。本文将带你了解Vue的基本概念,并通过实例来快速上手这个流行的前端框架。环境准备在开始之前,确保你的开发环境中安装了以下工......