1 开始
1.1 Debezium简介
Debezium 是一个开源项目,为捕获变更数据(CDC) 提供低延迟的数据流平台。您设置并配置 Debezium 以监控您的数据库,然后您的应用程序就可以使用这些对数据库进行的每个行级更改的事件。只有已提交的更改是可见的,因此您的应用程序不必担心回滚的事务或更改。Debezium 提供所有更改事件的单一模型,因此您的应用程序不必担心每种数据库管理系统的复杂性。此外,由于 Debezium 在持久、复制的日志中记录数据更改的历史记录,因此您的应用程序可以随时停止和重新启动,并且可以使用它在未运行时错过的所有事件。
监控数据库并在数据更改时收到通知一直很复杂。关系数据库触发器可能很有用,但特定于每个数据库,并且通常仅限于更新同一数据库内的状态(不与外部进程通信)。一些数据库提供 API 或框架来监视更改,但没有标准,因此每个数据库的方法都不同,并且需要大量知识丰富的专业代码。确保以相同的顺序查看和处理所有更改,同时对数据库的影响最小,仍然非常具有挑战性。
Debezium 提供了为您完成这项工作的模块。一些模块是通用的,可与多个数据库管理系统一起使用,但在功能和性能方面也有一些限制。其他模块是为特定的数据库管理系统量身定制的,因此它们的功能通常要强大得多,并且可以利用系统的特定功能。
1.2 Debezium架构
最常见的方式是通过 Apache Kafka Connect来部署Debezium。Kafka Connect是一个用于实现和操作的框架和运行时(下一小节有详细介绍),通常包以下两部份:
-
将记录发送到Kaf