阿里巴巴 canal 开源组件发布 v1.1.3 版本

栏目: 软件资讯 · 发布时间: 7年前

内容简介:canal 是阿里巴巴在 2012 年开源的基于 MySQL 数据库增量日志解析,提供增量数据订阅&消费。基于 canal 的准实时日志订阅消费,你可以完成类似的业务: 同步到另一个数据库,比如异地容灾、同步离线库等 构建多级...

canal 是阿里巴巴在 2012 年开源的基于 MySQL 数据库增量日志解析,提供增量数据订阅&消费。基于 canal 的准实时日志订阅消费,你可以完成类似的业务:

  1. 同步到另一个数据库,比如异地容灾、同步离线库等
  2. 构建多级索引 (卖家和买家各自分库索引)
  3. 实时构建搜索引擎,比如同步给 elasticsearch
  4. 业务 cache 刷新
  5. 价格变化等重要业务消息

项目开源地址:https://github.com/alibaba/canal。经历了 4 个月的蛰伏,canal 1.1 系列的 1.1.3 正式发布了,主要围绕自建的生态能力,完善消息投递到 MQ 和 Client Adapter 做了比较多的测试和修复工作,具体的变更日志:

功能新增

  1. 支持 MySQL 8.0 新的 caching_sha2_password 认证协议

  2. 支持 Azure MySQL 的认证协议

  3. canal 投递 MQ 消息【MQ投递】

    • 支持按表规则定义 dynamic topic、partition 路由的能力

    • 新增 kafka 消息投递事务

  4. canal 内置的客户端【ClientAdapter】

    • rds-adapter 增加 MySQL 整个 DB 层面的同步配置

    • es-adapter 新增父子文档索引适配

小需求 & bugfix

  1. 解决 server 单核服务器无法接收数据的问题 #1605

  2. 修复 TableMeta TSDB 支持 utf8mb4 #1550

  3. 修复 MQ 消息发送时非 flatMessage 模式出现数据重复 #1551

  4. 修复 Kafka 配置为分区模式时出现数据 #1636

  5. 修复 fastsql 的几个 DDL 解析问题 #1306 #1546 #1626

  6. 修复 rdb-adapter 同步的类型转化、空指针、大小写、DDL 同步等问题 #1313 #1338 #1341 #1408 #1433

  7. 修复投递 MQ 模式,Canal server HA 在切换后不生效 #1229

  8. 修复 es-adapter 数据库主键类型错误 #1559

  9. 修复 charset 编码不存在 #1662

更多详情,可以参见 https://github.com/alibaba/canal/releases

canal 工作原理

阿里巴巴 canal 开源组件发布 v1.1.3 版本

原理相对比较简单:

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

canal 整体架构

阿里巴巴 canal 开源组件发布 v1.1.3 版本

说明:

  • server 代表一个 canal 运行实例,对应于一个 jvm
  • instance 对应于一个数据队列 (1个 server 对应 1..n 个 instance)

instance 模块:

  • eventParser (数据源接入,模拟 slave 协议和 master 进行交互,协议解析)
  • eventSink (Parser 和 Store 链接器,进行数据过滤、加工、分发的工作)
  • eventStore (数据存储)
  • metaManager (增量订阅&消费信息管理器)

整个 canal-server 可以有两种交付方式

  1. client/server 架构,可以独立部署一个 canal server 进程去抓取 MySQL binlog,然后业务代码里启动1个或多个 canal client 来做消费。优点:开箱即用,运维简单

  2. 嵌入式架构,允许业务代码里启动 canal server 直接来做消费。优点:方便和业务系统做集成

canal 相比于其他开源的 binlog 产品,比如 open-replicator、mysql-binlog-connector-java、Tungsten Replicator、maxwell 有比较多的优势:

  1. 高可用性。canal 支持 MySQL 主备、server 和 client 多个层面的高可用机制,可以作为生产使用

  2. 跨语言。canal 的通讯协议选择了 protobuf 3.6.1,client 层面目前支持 java 、c#、 go 多个语言的客户端

  3. 整体性。canal 支持增量数据投递到 MQ,同时引入 Client Adpater 扩展机制,目前支持 rdb、elasticsearch、hbase 等目标的写入

来源 DRDS乐园


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C Primer Plus

C Primer Plus

Stephen Prata、云巅工作室 / 云巅工作室 / 人民邮电出版社 / 2005-2-1 / 60.00元

《C Primer Plus(第5版)(中文版)》共17章。第1、2章学习C语言编程所需的预备知识。第3到15章介绍了C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求。第16章和第17章讨论了C预处......一起来看看 《C Primer Plus》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试