Debezium日常分享系列之:Debezium 3.0.5.Final发布

Debezium日常分享系列之:Debezium 3.0.5.Final发布

  • 重大变化
    • Kafka信号源
    • 变更事件源信息块
  • 新功能和改进
  • 核心
    • 允许在未知表上进行临时阻塞快照
    • 快照分发失败处理改进
    • 连接器启动配置日志改进
  • Postgres
    • 支持PostgreSQL 17的故障转移复制槽
  • Oracle
    • 跟踪部分回滚事件的新指标
    • 跳过GoldenGate复制标记
  • Vitess
    • 不可解析的DDL处理改进
  • K8s Operator
    • 支持JDBC偏移/历史配置

重大变化

Kafka信号源

  • 在连接器重新启动时,Debezium会重新处理基于Kafka的信号,这可能会引入无法预测的行为和意外的副作用。因此,该功能已被移除,如果连接器停止,则必须重新发送信号。

变更事件源信息块

  • 在Debezium的变更事件中,源信息块中的快照枚举被扩展以包括所有可能的情况。

新功能和改进

Debezium 3.0.5.Final引入了一些改进和新功能,让我们逐个查看每个功能。

核心

允许在未知表上进行临时阻塞快照

  • 虽然我们建议对所有表使用默认的模式管理配置,但我们理解并非每个环境都能实现这一点。我们经常看到的一个常见问题是,如果连接器使用store.only.captured.tables.ddl配置为true,那么如何对新增的表进行快照。
    在此更新中,我们简化了这个过程,您可以通过更新连接器配置来添加新的表,一旦连接器任务重新启动,即使对于未知但与捕获过滤器匹配的表,也可以发送临时阻塞快照信号。

快照分发失败处理改进

  • 在处理变更事件时,用户可以使用event.processing.failure.handling.mode来控制连接器对特定事件处理失败的反应方式;然而,传统上这仅适用于流式变更。
  • 在某些边缘情况下,发出快照事件也可能引发失败。为了改善这种体验,event.processing.failure.handling.mode现在也会影响分发快照事件时的失败处理。

连接器启动配置日志改进

  • 当Debezium源连接器启动时,它会记录所有连接器的配置。这对于团队在诊断问题时非常有帮助,同时也方便用户确认他们的配置被正确理解。
  • 在此更新中,连接器配置的日志记录稍有变化。您会注意到,不再将每个配置属性作为新的日志条目,而是将每个键/值通过新行分隔并追加在一起,作为单个条目添加到日志中。这样更容易识别这些日志行,并且如果需要,工具可以更容易地排除这样的日志条目。

Postgres

支持PostgreSQL 17的故障转移复制槽

  • PostgreSQL 17引入了一个期待已久的功能,称为复制槽的故障转移。
  • 在创建复制槽时,可以指定一个新的属性,以使复制槽在故障转移副本上创建并可用。故障转移复制槽的同步可以通过调用pg_sync_replication_slots()手动执行,也可以通过启用sync_replication_slots功能自动执行。
  • 当启用自动同步时,这允许Debezium在故障转移到副本时立即从该槽中消费,并且不会错过任何事件。
  • 要利用这个新功能,您的连接器必须配置slot.failover为true。Debezium必须连接到PostgreSQL 17+和集群上的主服务器,否则将不会创建故障转移复制槽。

Oracle

跟踪部分回滚事件的新指标

  • 部分回滚事件是Oracle独有的一种情况,其中用户执行一个操作,它被记录为在事务日志中执行,但是验证检查会强制撤销和回滚该操作。触发部分回滚的最显著方式之一是违反约束条件。
  • 新的JMX指标NumberOfPartialRollbackCount跟踪事务日志中这种事件序列的频率。

该指标的增加应该是很少见的,在一天中出现几次不应该造成重大问题。

当您注意到该指标在很短的时间窗口内频繁增加时,这意味着您可能有一个编写不良的脚本,其中一个作业依赖于约束违规来实现某些逻辑。虽然连接器可以处理这些用例,但重要的是要理解这会创建不必要的事务日志活动,直接影响流式变更的速度和延迟。

跳过GoldenGate复制标记

  • 当使用Debezium从与Oracle GoldenGate交互的Oracle数据库中捕获变更时,您可能会注意到在重新启动时,偏移量中的低水位线没有前进。特别是在将lob.enabled设置为true时尤为明显。
  • 在此更新中,Debezium Oracle连接器现在将跳过GoldenGate的复制标记事件,这将防止这些合成事务混淆事务缓冲区,并迫使用户依赖事务保留。

Vitess

不可解析的DDL处理改进

Vitess已经添加了几项新的改进措施,以使DDL变更的解析和处理更具容错性()。这些改进包括:

  • 仅在特定表在模式历史中被跟踪时才解析DDL事件
  • 去除注释以模拟解析失败
  • 使表和类型容错以优雅地处理边缘情况。

K8s Operator

支持JDBC偏移/历史配置

  • 我们通过引入对JDBC存储模块的支持,改进了Kubernetes Operator,使其可以通过CRD进行配置。
  • 在offset模式参考中,添加了一个名为jdbc的新属性部分,描述了JDBC偏移后备存储属性。在schema history参考中,添加了一个名为jdbc的新属性部分,描述了JDBC模式历史存储属性。
  • 这使得用户可以轻松地将使用Debezium Operator部署的连接器的偏移量和模式历史细节存储在JDBC数据存储中。

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

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

相关文章

【Jenkins】持久化

文章目录 持续集成CI持续部署CD部署部署到linux服务器 持续集成好处: 持续集成CI 持续集成(Continuous integration,简称CI)指的是频繁地(一天多次)将代码集成到主干。 持续集成的目的就是让产品可以快速…

领域自适应

领域自适应(Domain Adaptation)是一种技术,用于将机器学习模型从一个数据分布(源域)迁移到另一个数据分布(目标域)。这在源数据和目标数据具有不同特征分布但任务相同的情况下特别有用。领域自适…

从零创建一个 Django 项目

1. 准备环境 在开始之前,确保你的开发环境满足以下要求: 安装了 Python (推荐 3.8 或更高版本)。安装 pip 包管理工具。如果要使用 MySQL 或 PostgreSQL,确保对应的数据库已安装。 创建虚拟环境 在项目目录中创建并激活虚拟环境&#xff…

【SH】在Ubuntu Server 24中基于Python Web应用的Flask Web开发(实现POST请求)学习笔记

文章目录 Flask开发环境搭建保持Flask运行Debug调试 路由和视图可变路由 请求和响应获取请求信息Request属性响应状态码常见状态码CookieSession 表单GET请求POST请求 Flask 在用户使用浏览器访问网页的过程中,浏览器首先会发送一个请求到服务器,服务器…

mybatis-plus配置找不到Mapper接口路径的坑

mybatis-plus今天遇到一个问题,就是mybatis 没有读取到mapper.xml 文件。 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.husy.mapper.SystemUserMapper.findUserByName at com.baomidou.mybatisplus.core.override.Myba…

Latex+VsCode+Win10搭建

最近在写论文,overleaf的免费使用次数受限,因此需要使用本地的形式进行编译。 安装TEXLive 下载地址:https://mirror-hk.koddos.net/CTAN/systems/texlive/Images/ 下载完成直接点击iso进行安装操作。 安装LATEX Workshop插件 设置VsCode文…

Linux世界中的指挥家:进程管理

文章一览 前言一、多道程序设计1.1 顺序程序活动的特点1.2 多道程序设计1.3 程序并发执行的特征 二、进程概念2.1 进程定义进程的根本属性: 2.2 进程的基本特征 三、进程状态3.1 进程的基本状态3.2 进程状态的转换3.3 进程族系 四、进程管理命令4.1 查看进程状态4.1…

LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读

LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读 导读:这篇论文提出了一种名为rStar的自我博弈互推理方法,用于增强小型语言模型 (SLMs) 的推理能力,无需微调或依赖更强大的模型。rStar…

软件测试面试题和简历模板(面试前准备篇)

一、问题预测 1、让简单介绍下自己(这个不用说了每次面试开场) 面试官,你好,我叫xxx,xx年本科毕业,从事软件测试将近3年的时间。在此期间做过一些项目也积累过一些经验,能够独立地完成软件测试…

BEVFormer论文总结

BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers BEVFormer:利用时空变换从多相机图像中学习鸟瞰表示 研究团队:南京大学、上海AI实验室、香港大学 ​ 代码地址:https://g…

Java爬虫获取1688 item_search_img接口详细解析

概述 1688作为中国领先的B2B电商平台,提供了丰富的API接口供开发者获取商品信息。item_search_img接口允许通过图片搜索商品,这对于需要基于图片进行商品查找的应用场景非常有用。本文将详细介绍如何使用Java爬虫技术获取1688的item_search_img接口数据…

eBPF试一下(TODO)

eBPF程序跟踪linux内核软中断 eBPF (Extended Berkeley Packet Filter) 是一种强大的 Linux 内核技术,最初用于网络数据包过滤,但现在它已经扩展到了多个领域,如性能监控、安全性、跟踪等。eBPF 允许用户在内核中执行代码(以一种安…

《Java 优化秘籍:计算密集型 AI 任务加速指南》

在人工智能蓬勃发展的今天,计算密集型 AI 任务日益增多且要求愈发严苛。Java 作为广泛应用于 AI 领域的编程语言,如何对其代码进行优化以应对这些挑战,成为开发者们关注的焦点。本文将深入探讨针对计算密集型 AI 任务的 Java 代码优化策略&am…

基于变异策略的模糊测试:seed与mutation的含义

1. 引入 最早期的模糊测试(fuzz),是生成一些随机的文本序列,对unix系统的命令行输入进行测试。这种古老的方式,也发现了不少漏洞。 但完全随机的fuzz,存在如下问题: (1&#xff09…

(补)算法刷题Day24: BM61 矩阵最长递增路径

题目链接 思路 方法一:dfs暴力回溯 使用原始used数组4个方向遍历框架 , 全局添加一个最大值判断最大的路径长度。 方法二:加上dp数组记忆的优雅回溯 抛弃掉used数组,使用dp数组来记忆遍历过的节点的最长递增路径长度。每遍历到已…

【Maven】Maven的快照库和发行库

1、分类 Maven 支持两种类型的仓库:快照库(Snapshot Repository)和发行库(Release Repository),用于存储不同性质的构件(Artifacts)。 (1) 快照库 (Snapshot Repository)&#xff…

目标检测-R-CNN

R-CNN在2014年被提出,算法流程可以概括如下: 候选区域生成:利用选择性搜索(selective search)方法找出图片中可能存在目标的候选区域(region proposal) CNN网络提取特征:对候选区域进行特征提取(可以使用AlexNet、VGG等网络) 目…

Sigrity SystemSI仿真分析教程文件路径

为了方便读者能够快速上手和学会Sigrity SystemSI 的功能,将Sigrity SystemSI仿真分析教程专栏所有文章对应的实例文件上传至以下路径 https://download.csdn.net/download/weixin_54787054/90171488?spm1001.2014.3001.5503

harmony UI组件学习(1)

Image 图片组件 string格式,通常用来加载网络图片,需要申请网络访问权限:ohos.permission.INTERNET Image(https://xxx.png) PixelMap格式,可以加载像素图,常用在图片编辑中 Image(pixelMapobject) Resource格式,加…

【Linux进程】进程间通信(共享内存、消息队列、信号量)

目录 前言 1. System V IPC 2. 共享内存 系统调用接口 shmget ftok shmat shmdt shmctl 共享内存的读写 共享内存的描述对象 3. 消息队列 msgget msgsnd msgctl 消息队列描述对象 4. 信号量 系统调用接口 semget semctl 信号量描述对象 5. 系统层面IPC资源 6.…