113
Home
agapple edited this page 2026-02-12 16:15:46 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.8</version>
</dependency>