canal README

The project's README from github.com/alibaba/canal. As one markdown file: README.md.

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

简介

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

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

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

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

工作原理

MySQL主备复制原理

canal 工作原理

重要版本更新说明

  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 的多语言能力

基于canal开发的工具

相关开源&产品

问题反馈

本项目的Issues会被同步沉淀至阿里云开发者社区

canal (alibaba/canal)

Searching Database…

29.7K ·GitHub
这是什么?Canal 是阿里巴巴推出的 MySQL binlog 增量订阅与消费组件。它伪装成 MySQL 从库,从 MySQL 主库拉取 binlog 事件,并让你消费解析后的变更数据,用于缓存刷新、索引构建或数据库同步等场景。
这是我要嵌入的库,还是独立运行的服务?它是一个独立的客户端-服务端系统:canal server 进程作为伪装的从库与 MySQL 通信,独立的客户端应用(支持 Java、C#、Go、PHP、Python、Rust 或 Node.js)通过 protobuf 3.0 协议连接到它,以消费这些变更。
我要怎么把它跑起来?按照 QuickStart 指南(或 Docker QuickStart)部署 canal server,将其指向你的 MySQL 主库以开始转储 binlog,然后用你喜欢的语言编写客户端来消费解析后的事件,或直接将其输送到 Kafka/RocketMQ。
我是不是得先配置 MySQL 复制?是的。Canal 模拟 MySQL 复制协议,因此你的 MySQL 主库必须开启 binlog,并像配置从库一样进行设置,因为 canal 会像真正的从库一样发送转储请求。
它到底支持哪些 MySQL 版本?目前支持的源端 MySQL 版本为 5.1.x、5.5.x、5.6.x、5.7.x 和 8.0.x;其他版本或大幅改动的 MySQL 分支不保证能正常工作。
一般是谁在用?当初为什么做这个?它最初是在阿里巴巴内部开发的,用于在杭州和美国的数据中心之间同步数据;主要面向需要数据库镜像、实时备份、搜索索引维护,或由数据库变更驱动缓存失效的团队。
能在 Linux 服务器上正式运行吗?能。Canal 是一个 Java 服务进程,通常部署在 Linux 上,同时还提供官方 Docker 镜像,便于部署。
Canal 有管理用的网页界面吗?有。自 1.1.4 版本起,canal 包含 canal-admin 项目,提供 WebUI,可动态管理配置、任务和日志,无需手动修改文件。
Canal 能直接把变更推送到 Kafka 或 RocketMQ 吗?能。Canal 原生支持将解析后的 binlog 事件直接推送到 Kafka 或 RocketMQ 作为消息投递目标,无需自定义中继客户端。
Canal 支持阿里云 RDS 实例吗?支持。它原生支持订阅阿里云 RDS for MySQL 的 binlog,还能处理主从自动切换以及离线 OSS binlog 解析等问题。
Canal 自带监控功能吗?有。Canal 原生支持 Prometheus 指标,开箱即可监控其性能和运行状况。
Creator
alibaba
Size
23.7 MB
Stars
29.7K
Age
13y
Commits · 90 Days