分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

debezium/debezium

数据

开源变更数据捕获平台,把数据库行级变更以低延迟、有序事件流写入 Kafka 或直接交给应用消费。

13,305
3,119
Java
Apache-2.0
创建于 10 年前

项目介绍

Debezium 是一个变更数据捕获(CDC)平台:它监控数据库,把每一次已提交的行级变更转成统一格式的事件流。应用不需要处理各数据库各不相同的触发器、轮询或事务回滚逻辑,只消费同一种事件模型;由于变更历史保存在持久、可复制的日志中,应用停机后重启也能从上次位置继续消费。

主要部署方式是把 connector 跑在 Kafka Connect 中,变更写入 Kafka topic(通常每张表一个 topic),由 Kafka 负责复制、全序和多个客户端独立消费。对容错、扩展性要求不高的应用,也可以使用内嵌 connector 引擎,把事件直接交给应用处理。常见用途包括缓存失效、替代单体应用里的双写、多应用共享数据库变更、数据集成,以及构建 CQRS 读模型。新的 issue 跟踪入口位于 debezium/dbz。

从源码构建

README 记录的是源码构建流程,不是 connector 的部署流程。准备 Git 2.2.1+、JDK 21+、Docker Engine/Desktop 1.9+、Maven 3.9.8+(也可以使用仓库自带的 ./mvnw)。确认各工具可用后,克隆并构建:

git clone https://github.com/debezium/debezium.git
cd debezium
./mvnw clean verify

clean verify 会启动多个数据库的 Docker 容器来运行集成测试。如果 Docker 没运行或配置不对,先用 docker ps 检查环境。没有 Docker 时可以跳过集成测试:

./mvnw clean verify -DskipITs

只生成产物、不跑测试和 QA 插件时使用 quick profile:

./mvnw clean verify -Dquick

在 Colima 上需要设置 Testcontainers 的 socket 与 host 环境变量;在 Apple Silicon 上,Docker Maven Plugin 需要使用 linux/amd64 平台。PostgreSQL connector 可按解码插件(decoderbufs、wal2json、pgoutput)选择构建 profile,Oracle connector 的 XStream 测试需要 Instant Client 目录。connector 的部署与配置请参考项目官网。

使用约束

构建和测试需要 Docker,因为集成测试要启动数据库和服务容器;没有 Docker 时只能走 -DskipITs 或 -Dquick。connector 的行为受数据库支持情况影响:PostgreSQL 测试说明非 RDS 集群要求用户具备 replication 权限,并能登录所有数据库,部分测试还需要 PostGIS;RDS 环境有单独说明。部分 PostgreSQL 测试在 wal2json 插件下无法通过。主项目使用 Apache-2.0 许可证,debezium-ddl-parser 中的 ANTLR 语法文件使用 MIT 许可证。

HotRepo 点评

2026-11-02 的 Java 日榜中,Debezium 位列第 12,单日新增 7 个 Star,总数为 13,305 Star、3,119 Fork。目前只有这一条站内快照,因此只能说明它在 Java 生态中仍有可见度,不足以判断增长趋势。项目本身提供了明确可用的内容:基于 Kafka/Kafka Connect 的成熟 CDC 架构,以及一套能借助 Docker 在本地测试多种数据库的源码构建流程。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。