• 介绍一款数据准实时复制(CDC)中间件 `Debezium`


    简介

    文章开头先介绍一下什么是CDC。数据准实时复制(CDC)是目前行内实时数据需求大量使用的技术。常用的中间件有CanalDebezium、Flink CDC等

    下面我们做一下对比

    各有优缺点吧,本主要介绍一下Debezium中间件。

    Debezium是什么

    Debezium是一个为变更数据捕获(CDC)提供低延迟数据流平台的开源项目。Debezium是一个将来自现有数据库的信息转换为事件流的分布式平台,使应用程序能够检测并立即响应数据库中的行级更改。

    Debezium构建在Apache Kafka之上,并提供了一组Kafka Connect兼容的连接器。每个连接器都与特定的数据库管理系统(DBMS)一起工作。连接器通过检测发生的变化来记录DBMS中数据变化的历史,并将每个变化事件的记录流式传输到Kafka Topic。然后,消费应用程序可以从Kafka主题中读取结果事件记录。通过利用Kafka可靠的流媒体平台,Debezium使应用程序能够正确和完整地消费数据库中发生的更改。即使您的应用程序意外停止或失去连接,它也不会错过停机期间发生的事件。应用程序重新启动后,它将从停止的位置继续从主题读取。

    注:本文只讨论Debezium构建在kafka之上。

    Kafka Connect架构

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

    • 源连接器,如Debezium,将记录发送到Kafka
    • 接收连接器,将记录从Kafka主题传播到其他系统

    下图显示了基于Debezium的变更数据捕获管道的架构:

    如图所示,部署了用于MySQL和PostgresSQL的Debezium连接器来捕获对这两种数据库的更改。每个Debezium连接器建立一个到其源数据库的连接:

    • MySQL连接器使用一个客户端库来访问binlog。
    • PostgreSQL连接器从逻辑复制流中读取数据。

    Kafka Connect作为Kafka代理之外的一个独立服务运行。

    默认情况下,一个数据库表的更改被写入Kafka主题,其名称对应于表名。如果需要,您可以通过配置Debezium的主题路由转换来调整目标主题名称。例如,您可以:

    • 将记录路由到名称与表名不同的主题
    • 将多个表的更改事件记录流式传输到单个主题中

    在Apache Kafka中更改事件记录后,Kafka Connect生态系统中的不同连接器可以将记录流式传输到其他系统和数据库,如Elasticsearch,数据仓库和分析系统,或缓存,如Infinispan。根据所选择的接收器连接器,您可能需要配置Debezium的新记录状态提取转换

  • 相关阅读:
    Codeforces Round #813 (Div. 2)A.B.C
    22/10/21 vue2 渲染富文本
    ELK集群安装
    SIP对讲应用
    [前端基础] JavaScript 基础篇(上)
    李宏毅:Life Long Learning
    遗留代码处理技巧与案例演示
    【vue】使用less报错:显示this.getOptions is not a function
    【校招VIP】前端布局模块之Flex弹性布局
    OpenAI Kubernetes 相关博文读后笔记
  • 原文地址:https://blog.csdn.net/qq1353424111/article/details/140383971