Debezium 3.7 介绍与选型指南
Debezium 3.7 介绍与选型指南:基于官方资料梳理这款变更数据捕获平台的信息基准、Kafka Connect 架构与部署形态、功能特性、连接器注册快速上手、适用场景与限制,并对比 Canal、Flink CDC 与 Maxwell 的选型差异。
Debezium 3.7 介绍与选型指南
一、信息基准
本文为 Debezium 的介绍与选型指南,全部信息均来自官方公开资料(官方网站、GitHub 官方仓库、Maven Central),不做本地安装与运行实测。
| 项目 | 内容 |
|---|---|
| 查询日期 | 2026-10-18 |
| 版本依据 | 最新稳定版 3.7(3.7.0.Final,2026-09-29 发布,GitHub Releases 与 Maven Central 双向核验);上一稳定线 3.6(3.6.3.Final,2026-09-18);官网版本导航明确标注"3.7 latest stable、3.6 stable、2.7 stable" |
| 开源许可 | Apache License 2.0 |
| 项目状态 | 活跃维护的开源 CDC 项目,Java/Kafka Connect 生态组件 |
官方来源清单:
| 来源 | 链接 | 说明 |
|---|---|---|
| 官网 Releases 页 | https://debezium.io/releases/ | 稳定版本线标注与发布概述 |
| GitHub Releases | https://github.com/debezium/debezium/releases | 3.7.0.Final(2026-09-29)、3.6.3.Final(2026-09-18) |
| Maven Central | https://repo1.maven.org/maven2/io/debezium/debezium-api/maven-metadata.xml | 3.7.0.Final 交叉核验(Alpha→Beta→CR→Final 完整发布序列) |
| 官方教程 | https://debezium.io/documentation/reference/stable/kc-tutorial.html | 连接器注册快速上手(第五章引用) |
| 官方文档 | https://debezium.io/documentation/reference/stable/ | 部署形态与连接器文档 |
版本节奏(依据 GitHub Releases 与 Maven Central):3.x 线自 3.0 起按 minor 滚动演进(3.0.8、3.1.3、3.2.7、3.3.2、3.4.3、3.5.2、3.6.3、3.7.0 各线均有补丁),每个 minor 经过 Alpha→Beta→CR→Final 的多阶段发布流程后定版,节奏约为季度级 minor 加补丁维护。
二、软件概述
本文介绍的版本为 Debezium 3.7(最新稳定版 3.7.0.Final,2026 年 9 月 29 日发布)。
Debezium 是一套开源的变更数据捕获(CDC,Change Data Capture)平台:它把数据库中的行级变更(插入、更新、删除)实时捕获为事件流,供下游系统消费。官方描述其典型用途包括缓存失效、全文检索同步、简化 ETL、以及支撑 CQRS 等读写分离架构——写侧照常更新数据库,Debezium 把变更捕获为持久、全序的事件流,读侧服务异步消费事件更新只读视图。
Debezium 基于 Apache Kafka 与 Kafka Connect 构建(另有无需 Kafka 的独立运行形态,见 3.3 节),代码开源于 GitHub(debezium/debezium,截至查询日约 13237 stars),采用 Apache-2.0 许可,是 CDC 领域事实上的开源标准方案之一。
三、核心架构
3.1 Kafka Connect 连接器架构
Debezium 的经典形态是一组 Kafka Connect 兼容连接器:每个连接器对接一种数据库管理系统(DBMS),通过读取数据库的事务日志(如 MySQL 的 binlog)捕获变更,将变更事件按顺序写入 Kafka 主题;消费应用从主题读取事件流。连接器由 Kafka Connect 集群托管,任务可自动在节点间重分配以实现容错。
3.2 多数据库连接器矩阵
官方文档列出的连接器覆盖主流数据库:MySQL、PostgreSQL、SQL Server、MongoDB、Oracle、Db2、Cassandra、Vitess、Spanner、Informix 等。
3.3 多种部署形态
官方文档将运行形态划分为四类:
- Debezium Platform:平台化托管的数据管线,官方推荐的现代形态。
- Kafka Connect:经典分布式安装,依托 Kafka Connect 集群运行。
- Debezium Server:独立运行、无需 Kafka,直接将变更投递到其他消息或存储系统。
- Operator:以运维自动化方式管理 Debezium Server 的部署。
另有面向应用内嵌场景的 Debezium Engine(以库的形式嵌入应用进程)与 Quarkus Extension。
四、功能特性
- 实时变更捕获:基于事务日志的 CDC,不侵入业务代码,捕获插入、更新、删除事件。
- 快照与增量一致性:连接器可先做一致性快照再切换到日志增量流(官方连接器文档的标准能力)。
- 事件结构化:变更事件包含 before/after 数据与元数据,Schema 历史记录可写入内部主题。
- 多数据库支持:官方连接器矩阵覆盖 MySQL、PostgreSQL、Oracle、SQL Server、MongoDB、Db2 等。
- 多形态运行:Kafka Connect 分布式、Debezium Server 无 Kafka 独立运行、内嵌引擎均可。
- 兼容性核验:官方教程说明 3.7.0.Final 已针对多个 Kafka Connect 版本完成测试,并提供官方测试矩阵(Debezium Test Matrix,https://debezium.io/releases )。
五、快速上手
以下示例引自官方教程"Tutorial"(https://debezium.io/documentation/reference/stable/kc-tutorial.html ),未做本地实测。教程流程为:启动 Kafka 与 Kafka Connect 服务,运行待监听的 MySQL 数据库,随后向 Kafka Connect 的 REST API 注册 MySQL 连接器。
- 准备连接器配置文件 register-mysql.json(官方教程原文):
{
"name": "inventory-connector",
"config": {
"connector.class": "io.debezium.connector.mysql.MySqlConnector",
"tasks.max": "1",
"database.hostname": "mysql",
"database.port": "3306",
"database.user": "debezium",
"database.password": "dbz",
"database.server.id": "184054",
"topic.prefix": "dbserver1",
"database.include.list": "inventory",
"schema.history.internal.kafka.bootstrap.servers": "kafka:9092",
"schema.history.internal.kafka.topic": "schema-changes.inventory"
}
}
- 通过 Kafka Connect REST API 注册连接器(官方教程的注册步骤):
curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ -d @register-mysql.json
- 注册完成后,连接器开始读取 MySQL binlog,将 inventory 库的变更事件写入以 dbserver1 为前缀的 Kafka 主题;随后在数据库中执行增删改,即可通过消费对应主题观察 create、update、delete 事件(官方教程"Viewing change events"章节)。
六、适用场景与限制
适用场景:
- 缓存失效与检索同步:将数据库变更实时同步到缓存、搜索引擎或派生表。
- 异构数据同步与数仓/数据湖增量入湖:以事件流方式向下游交付行级变更。
- CQRS 与事件溯源类架构:写库与读模型之间用 CDC 事件流保持最终一致。
- 多数据库统一 CDC 平台:需要同时捕获 MySQL、PostgreSQL、Oracle、MongoDB 等多种数据库变更的平台型需求。
限制:
- 经典形态依赖 Kafka 生态:需要 Kafka/Kafka Connect 运行时与运维能力;无 Kafka 场景需改用 Debezium Server 或内嵌引擎。
- 连接器按数据库分别实现,各连接器的配置与能力细节存在差异,需逐库阅读官方连接器文档。
- 与任何日志解析型 CDC 一样,对数据库日志格式、权限与时间同步有前提要求(详见各连接器官方文档的前置条件章节)。
七、同类选型对比
对比对象为变更数据捕获(CDC)领域的同类组件,数据来自各项目官方发布渠道与 GitHub 仓库页面,查询日期 2026-10-18。
| 维度 | Debezium 3.7 | Canal 1.1.8 | Flink CDC 3.7 | Maxwell 1.46 |
|---|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0(仓库 LICENSE 声明,GitHub 许可检测标注为 Other) |
| GitHub stars / 最近发版 | 13237 / 3.7.0.Final(2026-09-29) | 29735 / v1.1.8(2025-01-17) | 6485 / Release 3.7.0(2026-10-10) | 4262 / v1.46.0(2026-09-23) |
| 版本节奏 | 季度级 minor,Alpha→Beta→CR→Final 流程规范 | 更新明显放缓,1.1.8 为近期主要版本 | 跟随 Flink 社区节奏,半年级 minor | 年度级功能版本加维护补丁 |
| 兼容矩阵 | Java/Kafka Connect 运行时;连接器覆盖 MySQL、PostgreSQL、SQL Server、MongoDB、Oracle、Db2、Cassandra、Vitess、Spanner、Informix 等 | Java 组件,面向 MySQL binlog 增量订阅与消费 | 基于 Apache Flink 引擎,提供源到端的流式集成与整库同步能力 | Java 组件,面向 MySQL binlog 的行级变更捕获,输出 JSON 事件 |
选型说明:需要多数据库、事件语义完整、社区活跃且可依托 Kafka 生态的通用 CDC 平台,Debezium 是首选;仅做 MySQL binlog 同步且场景简单,Canal 与 Maxwell 更轻量,但两者更新节奏明显慢于 Debezium;若变更捕获要与流式计算一体化(源端同步加实时加工),Flink CDC 与 Flink 引擎的组合更顺路。不建议在无长期维护预期的场景下选用更新停滞的组件承载核心链路。
八、参考链接
- Debezium 官网 Releases:https://debezium.io/releases/
- GitHub 官方仓库:https://github.com/debezium/debezium
- Maven Central 元数据:https://repo1.maven.org/maven2/io/debezium/debezium-api/maven-metadata.xml
- 官方 Tutorial(连接器注册):https://debezium.io/documentation/reference/stable/kc-tutorial.html
- 官方文档首页:https://debezium.io/documentation/reference/stable/
- Canal 仓库:https://github.com/alibaba/canal
- Flink CDC 仓库:https://github.com/apache/flink-cdc
- Maxwell 仓库:https://github.com/zendesk/maxwell