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

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.kler.cn/a/450092.html

相关文章:

  • 华为ensp--BGP路由反射器
  • Windows开启IIS后依然出现http error 503.the service is unavailable
  • idea2024创建JavaWeb项目以及配置Tomcat详解
  • 人工智能:人机交互和用户体验:相关学点、两者关系、未来趋势
  • javaEE--计算机是如何工作的-1
  • 使用FakeSMTP创建本地SMTP服务器接收邮件具体实现。
  • 腾讯云云开发 Copilot具有以下优势
  • 外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列
  • 微服务——数据管理与一致性
  • [前端]mac安装nvm(node.js)多版本管理
  • sqoop,flume草稿
  • animatediff 模型网盘分享
  • 专业的内外网数据交换方案 可解决安全、效率、便捷3大问题
  • 单例Bean
  • 数据迁移工具,用这8种!
  • 探索Moticon智能传感器鞋垫OpenGo的功能与优势
  • AI领域年度精彩报告┆国家优青马超教授:自动驾驶多模态场景理解与生成
  • 有监督学习 vs 无监督学习:机器学习的两大支柱
  • Vue.js组件开发-路由与视图切换
  • web-密码安全口令
  • Java内存区域进一步详解
  • Android 11添加电容笔电量监测需求
  • 学习threejs,THREE.PlaneGeometry 二维平面几何体
  • 解锁 GitBook 的奥秘:从入门到精通之旅
  • 2024年12月19日Github流行趋势
  • 静态路由与动态路由