Navigation Menu

Skip to content
Li Qiang edited this page Aug 7, 2023 · 112 revisions

build status codecov maven license average time to resolve an issue percentage of issues still open

简介

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

工作原理

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

如何参与

  • 如果您在使用 canal 过程中,发现 bug 或者有新的述求,欢迎提交 issue ,请按标准模板进行填写,以便我们快速进行定位和理解,从而解决问题或者精确实现您的诉求
  • 如果您希望参与到代码开发中来,欢迎提交 pull request(如何使用 pull request?),代码开发前,请在 IDE 中导入工程中的 codeformat.xml 文件 (intellij idea 请先安装 Eclipse Code Formatter 插件,再进行设置)
  • 如果 canal 帮助到了您的业务,并且觉得这个产品还不错,请多多向您的朋友、同事推荐,感谢

交流渠道

  • 先加管理员,后拉群

QuickStart

See the page for quick start: QuickStart.

ClientExample

See the page for quick start: ClientExample.

AdminGuide

See the page for admin deploy guide : AdminGuide

Canal-Admin WebUI

See the page for admin deploy guide : Canal Admin Guide

重要版本更新说明

  1. canal 1.1.x 版本(release_note),性能与功能层面有较大的突破,重要提升包括:
  1. canal 1.1.4版本,迎来最重要的WebUI能力,引入canal-admin工程,支持面向WebUI的canal动态管理能力,支持配置、任务、日志等在线白屏运维能力,具体文档:Canal Admin Guide

多语言

canal 特别设计了 client-server 模式,交互协议使用 protobuf 3.0 , client 端可采用不同语言实现不同的消费逻辑,欢迎大家提交 pull request

canal 作为 MySQL binlog 增量获取和解析工具,可将变更记录投递到 MQ 系统中,比如 Kafka/RocketMQ,可以借助于 MQ 的多语言能力

版本

<dependency>
    <groupId>com.alibaba.otter</groupId>
    <artifactId>canal.client</artifactId>
    <version>1.1.4</version>
</dependency>