Debezium介绍

1.什么是Debezium

Debezium 是一个开源的分布式平台,用于捕获数据库的变更事件(CDC,Change Data Capture)。它能够实时捕获数据库中的行级更改,并将这些更改作为事件流发送到消息中间件(如 Apache Kafka)。Debezium 构建于 Apache Kafka Connect 之上,提供了一组 Kafka Connect 兼容的连接器,每个连接器都针对特定的数据库管理系统(DBMS)。

在生产环境中使用 Debezium,我们还需要了解它的一些生产相关的特性,包括:

  • 高可用
    • 单机高可用:Kafka Connect 仅跑在单台机器上,并且仅在这台机器上用文件来存储偏移,所以可以做到在这一台机器上重启时可以接续。
    • 集群高可用:Kafka Connect 本身提供了分布式模式(Distributed Mode)。这个模式会把连接器任务分布到不同的节点上,并且在某个节点失效时自动把任务重新协调到其他节点上。所以,如果使用分布式模式,则不会出现单点失效的问题。
  • 快照机制
    • 存量快照
    • 增量快照
    • 局部快照
  • 配置变更
    • 单机模式下,Kafka Connect 无法变更配置,而在分布式模式下,Kafka Connect 会暴露 REST API 方便我们查看连接器状态以及修改连接器配置
  • 数据处理
    • 特殊格式(不同数据格式转换)
    • 主题路由(多个不同表,路由到同一个topic进行消费处理)
  • 排错

2.为什么要使用 Debezium?

1. 实时数据同步

Debezium 能够实时捕获数据库的变更事件,并将这些事件发送到消息中间件(如 Kafka),从而实现数据的实时同步。这对于需要实时处理数据的应用场景非常有用,例如:

  • 微服务架构:在微服务架构中,多个服务可能需要共享数据。Debezium 可以将数据库的变更事件实时同步到 Kafka,其他服务可以通过订阅 Kafka 主题来获取最新的数据。
  • 数据仓库和数据湖:Debezium 可以将数据库的变更事件实时同步到数据仓库或数据湖,从而实现数据的实时分析和处理。

2. 简化数据集成

Debezium 提供了一种简单而高效的方式来捕获数据库的变更事件,而无需编写复杂的代码。这大大简化了数据集成的开发工作,提高了开发效率。

3. 高可用性和可扩展性

Debezium 构建于 Apache Kafka Connect 之上,继承了 Kafka 的高可用性和可扩展性。这使得 Debezium 能够在生产环境中稳定运行,并且可以根据需要进行水平扩展。

4. 支持多种数据库

Debezium 提供了多种数据库连接器,支持多种流行的数据库管理系统,如 MySQL、PostgreSQL、MongoDB 等。这使得 Debezium 能够适应不同的应用场景和需求。

3.使用 Debezium 能给我们带来哪些好处及便利?

1. 实时数据处理

Debezium 能够实时捕获数据库的变更事件,使得应用程序能够实时响应数据变化。这对于需要实时处理数据的应用场景非常有用,例如:

  • 实时监控:实时捕获数据库的变更事件,可以用于实时监控和告警。
  • 实时推荐:实时捕获用户行为数据,可以用于实时推荐系统。

2. 数据一致性

Debezium 能够确保数据的一致性,即使在分布式系统中,也能够保证数据的同步和一致性。这对于需要高一致性的应用场景非常有用,例如:

  • 分布式事务:在分布式系统中,Debezium 可以用于实现分布式事务的一致性。
  • 数据备份:Debezium 可以用于实现数据的实时备份,确保数据的安全性和一致性。

3. 简化开发

Debezium 提供了一种简单而高效的方式来捕获数据库的变更事件,而无需编写复杂的代码。这大大简化了开发工作,提高了开发效率。

4. 灵活的部署方式

Debezium 提供了多种部署方式,包括通过 Kafka Connect 部署、嵌入式模式和独立模式。这使得 Debezium 能够适应不同的应用场景和需求。

4.Debezium的三种实现方式

1. 通过 Kafka Connect 部署

这是最常用的部署方式。Kafka Connect 是一个用于实施和操作的框架和运行时,支持源连接器(如 Debezium)和目标连接器。在这种方式下,Debezium 作为 Kafka Connect 的一种源连接器,捕获数据库的变更事件并发送到 Kafka。这种方式适用于需要高可用性和可扩展性的生产环境。

centos7安装单机zookeeper

centos7安装单机kafka

centos7安装postgresql12

Kafka集成Debezium监听postgresql变更

2. 嵌入式(Embedded)模式

在这种模式下,Debezium 可以直接嵌入到 Java 应用程序中,而无需依赖 Kafka Connect 或 Kafka 集群。这种方式适合轻量级场景,尤其是不想引入额外消息中间件的项目。嵌入式模式提供了灵活性,可以直接在应用程序中处理变更事件。

Springboot集成Debezium监听postgresql变更

3. 独立模式(Standalone)

独立模式允许 Debezium 作为独立服务运行,捕获数据库变更并直接写入目标系统(如文件、数据库等),而无需 Kafka。这种方式适合不需要 Kafka 的轻量级场景,可以减少资源消耗。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38162.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Live555+Windows+MSys2 编译Androidso库和运行使用

下载 wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz tar -xzvf live555-latest.tar.gz加入版本控制 git init git add . git commit -a -m "first init" git log修改config.android-arm64 cd live vim config.android-arm64 ./genMakefile…

大模型-提示词工程与架构

什么是提示工程 提示工程(Prompt Engineering)是一门新兴的技术领域,专注于研究如何设计、构建和优化提示词,以充分发挥大模型的潜力 。它涉及到对语言结构、任务需求、模型特性等多方面因素的综合考量。提示工程的目标是通过精心…

Agent Team 多智能体系统解析

引言 在人工智能技术高速发展的今天,"多智能体协作系统"(Agent Team)正成为突破效率瓶颈的关键技术。与传统的单体AI不同,这种由多个专业化智能体组成的协同网络,通过分工协作和动态调整,展现出…

【蓝桥杯—单片机】IAP15F2K61S2专项 | 真题整理、解析与拓展 | 省赛题(更新ing...)

IAP15F2K61S2 专项 前言IAP15F2K61S2 介绍(基于手册)I/O口结构复位管脚RST中断第十四届省赛 外设通过PWM控制第十五届省赛题 性能与工作参数在线调试第十四届省赛题拓展与小结:单片机在线调试常用的接口 功耗第十五届省赛题 前言 在本文中我…

生物化学笔记:医学免疫学原理02 抗原概念+免疫应答+抗原的分类

抗原基本概念 影响抗原刺激机体产生免疫应答的因素 抗原的分类 CG 【北京大学】1080p 王月丹教授 《医学免疫学原理》2022春 全81p

(UI自动化测试)第二篇:元素定位的方法_name定位

二、name定位 ⽅法: driver.find_element_by_name(“name属性值”) 前置: 标签必须name属性 特点: 当前⻚⾯可以重复 提示: 由于name属性值可以重复,所以使⽤时需要查看是否为唯⼀。 # 导包selenium from selenium i…

软考中级-软件设计师 准备

软考中级-软件设计师 准备 一、软考相关1.1、考试时间1.2、考试时长1.3、题型和分值: 二、软考备考2.1、相关书籍2.2、推荐课程:B站up主zst_20012.3、学习路线 一、软考相关 1.1、考试时间 一年有两次软考,一般是五月末和十一月的中旬 以下…

记忆力训练day24

一 数字锁链串联法 数字两位 两位的连

田间机器人幼苗视觉检测与护苗施肥装置研究(大纲)

田间机器人幼苗视觉检测与护苗施肥装置研究 基于多光谱视觉与精准施肥的农业机器人系统设计 第一章 绪论 1.1 研究背景与意义 农业智能化需求: 传统幼苗检测依赖人工,效率低且易遗漏弱苗/病苗施肥不精准导致资源浪费和环境污染 技术挑战:…

Debian12生产环境配置笔记

在 Debian 12 上进行生产环境配置的详细步骤,涵盖软件更新、基础软件安装、Docker 及 Redis 部署,以及 Nginx 配置多个虚拟主机等内容。所有命令均以 root 用户身份执行,无需添加 sudo 1. 更新软件 首先,确保系统上的所有软件包…

HAL库编程知识点---Can.c和Driver_can.c分层开发

在一个工程中,通常会把对CAN外设的操作分成底层和上层两个部分,从而提高代码的模块化和可维护性。一般来说: can.c 通常由硬件抽象层(HAL)或者自动生成工具(如 CubeMX)提供或生成。主要负责CAN硬…

7. 【Vue实战--孢子记账--Web 版开发】-- 收支分类设置

本篇文章我们一起来实现收支分类功能。收支分类和前篇文章的主币种设置界面大体类似。我们将详细介绍如何创建和管理不同的收支分类,以便用户可以更好地组织和跟踪他们的财务状况。 一、功能 先来看一下原型界面,界面很简单,这里就不多讲解…

人工智能 - DeepSeek 和 Manus 的区别和应用场景

DeepSeek 与 Manus 是人工智能领域两种不同技术路线的代表,其核心区别在于功能定位和技术实现,应用场景也因此存在显著差异。以下是两者的对比分析: 一、核心区别 技术定位 DeepSeek:定位为“超级大脑”,专注于底层大模型的研发,擅长处理数学题、代码生成、知识问答等需要…

基于yolov11的防震锤缺陷检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的防震锤缺陷检测系统是一种利用深度学习技术进行自动化检测的系统。防震锤是电力线路中用于防止导线因风力等因素引起振动的关键部件,其性能状态直接影响到电力线路的安全运行。然而,防震锤在使用过程中可能会因各种因素导致缺…

MySQL数据库精研之旅第二期:库操作的深度探索

专栏:MySQL数据库成长记 个人主页:手握风云 目录 一、查看数据库 二、创建数据库 2.1. 语法 2.2. 示例 三、字符集编码和校验(排序)规则 3.1. 查看数据库支持的字符集编码 3.2. 查看数据库支持的排序规则 3.3. 不同的字串集与排序规则对数据库的…

ubuntu系统/run目录不能执行脚本问题解决

目录 前言 一、问题现象 二、原因分析 三、解决办法 总结 前言 在使用 Ubuntu 系统的过程中,我们有时会遇到在 /run 目录下无法执行脚本的情况。这篇博客将详细探讨该问题的原因,并提供有效的解决方案。。 一、问题现象 当尝试在 /run 目录下执行一个…

万用表测MOS好坏

测N MOS好坏 1,首先用万用表表笔把G D S全部短接放电。 2,万用表打到二极管档位 3,红笔接S(源极),黑笔接D(漏极),万用表会显示0.5V左右的电压(内部二极管压降…

clamav服务器杀毒(Linux服务器断网状态下如何进行clamav安装、查杀)

ClamAV服务器杀毒(服务器断网状态也可以使用该方法) 服务器因为挖矿病毒入侵导致断网,进行离线的clamav安装并查杀 安装包下载网址:https://www.clamav.net/downloads 安装.deb,如果服务器处于断网状态,可以…

Linux:基础IO---文件描述符

文章目录 1. 前言1.1 C语言文件知识回顾 2. 文件2.1 文件基础知识 3. 被打开的文件3.1 以C语言为主,先回忆一下C文件接口3.2 过渡到系统,认识文件系统调用3.3 访问文件的本质3.4 重定向&&缓冲区 序:在深入了解了进程的内容后&#xf…

LINUX基础 [二] - 进程概念

目录 前言 什么是进程 如何管理进程 描述进程 组织进程 如何查看进程 通过 ps 命令查看进程 通过 ls / proc 命令查看进程 通过系统调用 获取进程标示符 前言 在学习了【Linux系统编程】中的 ​ 操作系统 和 冯诺依曼体系结构 之后,我们已经对系统应该有…