当前位置: 首页 > news >正文

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

简介

文章开头先介绍一下什么是CDC。数据准实时复制(CDC)是目前行内实时数据需求大量使用的技术。常用的中间件有Canal、Debezium、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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 绘画平台小程序的设计
  • mysql笔记1
  • 内存对齐的定义以及它的重要性
  • 路径:/EtherCATInfo/Descriptions/Devices/Device/Type/@ShowHideableSubDevices
  • 路由协议的优先级,以及管理距离 AD 和 metric 的区别
  • P6. 对局列表和排行榜功能
  • 【框架】ABP(ASP.NET Boilerplate Project)
  • 24/7/12总结
  • CentOS7二进制安装和YUM安装mongodb,服务器无法安装5.0以上的 mongodb 数据库报错 Illegal instruction
  • asp.netWebForm(.netFramework) CSRF漏洞
  • StarRocks分布式元数据源码解析
  • LangChain —— Prompt Templates
  • ArcGIS中国工具(ArcGISCTools)等插件使用体验
  • 多进程优化顶点小说爬虫:加速爬取速度的深度优化策略
  • 二进制部署k8s
  • HTML中设置input等文本框为不可操作
  • JAVA多线程机制解析-volatilesynchronized
  • Java小白进阶笔记(3)-初级面向对象
  • Redux 中间件分析
  • Vue.js源码(2):初探List Rendering
  • 闭包--闭包之tab栏切换(四)
  • 对象引论
  • 精彩代码 vue.js
  • 蓝海存储开关机注意事项总结
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • MPAndroidChart 教程:Y轴 YAxis
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​Linux·i2c驱动架构​
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • # wps必须要登录激活才能使用吗?
  • #70结构体案例1(导师,学生,成绩)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #etcd#安装时出错
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (11)MSP430F5529 定时器B
  • (33)STM32——485实验笔记
  • (vue)页面文件上传获取:action地址
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (论文阅读11/100)Fast R-CNN
  • (四)linux文件内容查看
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)socket Aio demo
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net Core 中间件验签
  • .net 获取某一天 在当月是 第几周 函数
  • /etc/fstab 只读无法修改的解决办法
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [000-01-030].Zookeeper学习大纲