跳转至

Debezium CDC概述

debezium概述

Debezium是一个开源项目,用于捕获数据库的变更事件,并将其转换为可靠的流式数据流,为捕获数据更改(change data capture,CDC)提供了一个低延迟的流式处理平台。你可以安装并且配置Debezium去监控你的数据库,然后你的应用就可以消费对数据库的每一个行级别(row-level)的更改。

debezium架构

根据 debezium 官方材料可以了解到,其对应的有三种架构方式。

  1. Debezium + Apache Kafka Connect

    最常见的是,Debezium是通过Apache Kafka连接部署的。Kafka Connect是一个用于实现和操作的框架和运行时

    • 源连接器,如Debezium,它将数据摄取到Kafka
    • 接收连接器,它将数据从Kafka主题写入到其他系统。

    下图显示了一个基于Debezium的CDC管道的架构:

    debezium-architecture

    Debezium是一个捕获数据更改(CDC)平台,并且利用Kafka和Kafka Connect实现了自己的持久性、可靠性和容错性。每一个部署在Kafka Connect分布式的、可扩展的、容错性的服务中的connector监控一个上游数据库服务器,捕获所有的数据库更改,然后记录到一个或者多个Kafka topic(通常一个数据库表对应一个kafka topic)。

  2. Debezium Server

    Debezium 的另一种部署方法是使用Debezium 服务器。Debezium Server是一个可配置、开箱即用的应用程序。通过Debezium server,可以将源数据库流式变化事件同步到各种不同的消息基础设施。

    Debezium Server

  3. 作为嵌入式引擎

    使用Debezium连接器的另一种方法是嵌入式引擎。在这种情况下,Debezium不会通过Kafka Connect运行,而是作为一个嵌入到定制Java应用程序中的库运行。这对于在应用程序内部使用更改事件非常有用,而不需要部署完整的Kafka和Kafka连接集群,或者将更改流到其他消息传递代理(如Amazon Kinesis)。

    debezium-syncdb

官方文档:Debezium Architecture

Debezium的应用场景

Debezium在实时数据同步、数据仓库的变更捕获、事件驱动架构、多系统同步与集成以及特定业务需求等方面都有广泛的应用场景。通过捕获数据库的变更事件并将其转换为可靠的流式数据流,Debezium为数据的实时处理和分析提供了有力的支持。Debezium 通过解析数据库的二进制日志(如 MySQL 的 binlog)或使用其他数据库的 WAL(Write-Ahead Logging)来捕获数据变更,使得它能够提供精确、低延迟的数据流,以下是 Debezium 的一些主要应用场景:

  1. 实时数据集成:将数据库变更实时同步到数据湖、数据仓库或实时分析系统。

  2. 微服务数据更新:在微服务架构中,捕获数据库变更并更新相关联的微服务。

  3. 事件驱动架构:构建事件驱动架构,利用捕获的数据变更作为事件源。例如,当订单数据库中的订单状态发生变化时,Debezium可以捕获这一变化,并触发相应的通知、日志记录或业务逻辑处理。

  4. 数据迁移:在不停机的情况下,将数据从一个数据库迁移到另一个数据库。

  5. 数据副本同步:创建实时数据副本,用于报告、备份或灾难恢复。

  6. 变更数据捕获(CDC):捕获数据库表的插入、更新和删除操作,用于数据同步或审计。

  7. 多数据中心同步:在多个数据中心之间同步数据,以提高数据的可用性和冗余。

  8. 缓存更新:当数据库数据发生变化时,实时更新缓存系统中的相应条目或使缓存中的相关条目失效,从而确保缓存数据的准确性和一致性。

  9. 复杂事件处理:基于流数据构建复杂事件处理系统,用于监控、欺诈检测等。捕获数据变更日志,可用于数据审计、合规性检查,帮助跟踪数据修改的历史

  10. 消息队列:将数据库变更作为消息发送到消息队列系统(如Kafka、Amazon Kinesis、Google Cloud Pub/Sub等),用于后续处理。

以上就是Debezium的主要应用场景,在电子商务领域,Debezium可以用于实时监控订单数据库的变化,并将变化的订单信息传递给其他系统进行处理(如库存更新、支付处理等)。在金融领域,Debezium可以用于实时监控交易数据库的变化,并将交易信息传递给风控系统、审计系统等进行实时监控和分析。

捐赠本站(Donate)

weixin_pay
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))