我们很高兴地宣布 Debezium 2.5 系列的第二个维护版本 **Debezium 2.5.2.Final** 的发布。此版本包含了一些改进和大量的错误修复,让我们开始吧……

改进和更改

MongoDB 的范围限定密钥/信任库支持

Debezium 支持安全连接;然而,MongoDB 要求将密钥/信任存储配置作为 JVM 进程参数提供,这对于云环境来说不太理想。此功能最早是在 Debezium 2.6 中引入的,我们选择将其回溯到 Debezium 2.5。这项新更改允许在连接器配置 (DBZ-7379) 中为每个连接器范围提供密钥/信任存储配置。

MongoDB 连接器现在包括以下新配置属性:

mongodb.ssl.keystore

指定 SSL 密钥库文件的路径。

mongodb.ssl.keystore.password

指定用于打开和访问由 mongodb.ssl.keystore 提供的 SSL 密钥库的凭据。

mongodb.ssl.keystore.type

指定 SSL 密钥库文件类型,默认为 `PKC512`。

mongodb.ssl.truststore

指定 SSL 信任库文件的路径。

mongodb.ssl.truststore.password

指定用于打开和访问由 mongodb.ssl.truststore 提供的 SSL 信任库的凭据。

mongodb.ssl.truststore.type

指定 SSL 信任库文件类型,默认为 `PKC512`。

其他更改

总而言之,此版本修复了 30 个问题

  • PostgreSQL 连接器在数据库不可达时无法正确重启 DBZ-6236

  • 正确处理 METADATA 记录 DBZ-7176

  • Cassandra-4:Debezium 连接器在模式更改后停止生成事件 DBZ-7363

  • Informix-Connector 在具有数值默认值的表上中断 DBZ-7372

  • 使用长表列表进行增量快照时性能较差 DBZ-7421

  • Oracle 快照默认错误地使用 LogMiner Offset Loader DBZ-7425

  • 当不使用事件键源时,Reselect 列应从 after Struct 中获取键值 DBZ-7429

  • 允许通过配置自定义 C3P0ConnectionProvider DBZ-7431

  • Stopwatch 在没有统计数据的情况下调用 toString 时抛出 NPE DBZ-7436

  • 当文件通道信号在应用程序启动前提交时,不会通过文件通道信号触发即时快照 DBZ-7441

  • 升级 protobuf 至 3.25.2 DBZ-7442

  • 在 Debezium Server 文档站点中更正 debezium.sink.pubsub.flowcontrol.* 变量名 DBZ-7443

  • LogMiner 批处理大小不会自动增加 DBZ-7445

  • 合并版本管理 DBZ-7455

  • Oracle 连接器不会忽略排除的 clob/blob 列的重新选择 DBZ-7456

  • table.include.list 的预期值模式与文档不符 DBZ-7460

  • SQLServer 未加载信号操作 DBZ-7467

  • MySQL 连接器无法解析带 WITH SYSTEM VERSIONING PARTITION BY SYSTEM_TIME 的表 DBZ-7468

  • Test Db2ReselectColumnsProcessorIT 随机失败 DBZ-7471

  • 使就绪和存活探测超时可配置 DBZ-7476

  • Oracle ReselectColumnsProcessor 中存在 PreparedStatement 泄露 DBZ-7479

  • 记录 MariaDB 模式切换 DBZ-7487

  • 使用新的 reselect SMT 进行快照时性能较差 DBZ-7488

  • Debezium Oracle 连接器在 XMLTYPE 与 lob.enabled=true 时出现 ParsingException DBZ-7489

  • 修复 MySQL 8 事件时间戳解析逻辑错误,该错误导致非 GTID 事件错误地回退到秒 DBZ-7500

  • 在 Reselect Columns PostProcessor 测试中添加 Start CDC 钩子 DBZ-7516

  • 将 commons-compress 更新至 1.26.0 DBZ-7520

  • 将 JDBC sink 从 Incubation 升级 DBZ-7521

  • 修复 MySqlStreamingChangeEventSource::setEventTimestamp 中 FORMAT_DESCRIPTION 和 PREVIOUS_GTIDS 事件可能产生的 null 事件时间戳 DBZ-7567

展望与下一步?

距离下一个次要版本 Debezium 2.6 还有不到一个月的时间。这个版本将包含大量我们迫不及待想分享的新功能和变更。我们鼓励您花点时间,在这里 获取夜间构建版本,并分享您的反馈。

几周后,团队将开始将重心转移到 Debezium 2.7 的发展上。这将是 Debezium 2.x 系列的最后一个次要版本,它将包含其他连接器的只读增量快照、一个全新的专用 MariaDB 源连接器,以及一个 MongoDB sink 连接器,这仅仅是其中的一些亮点。我们还将把 2.6 版本中尚未完成的工作带入其中。

最后,下半年我们将专注于 Debezium 3 的开发,届时我们将迁移到 Java 17,开发新的时间序列源连接器,等等。请花些时间查阅我们的 路线图。如果您有任何建议或想法,请随时通过我们的 邮件列表 或我们的 Zulip 聊天 与我们联系。

下次见……

Chris Cranford

Chris 是 IBM 的一名软件工程师,之前在 Red Hat 工作,他致力于 Debezium 项目,并每天都在深入研究 Oracle 和 Change Data Capture 的各个方面。他此前曾从事 Hibernate(领先的开源 JPA 持久化框架)方面的工作,并且继续为 Quarkus 做贡献。Chris 居住在美国北卡罗来纳州。

   


关于 Debezium

Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。

参与进来

我们希望您觉得 Debezium 有趣且有用,并希望尝试一下。在 Twitter @debezium 上关注我们,在 Zulip 上与我们聊天,或加入我们的 邮件列表 与社区交流。所有代码都在 GitHub 上开源,因此请在本地构建代码,帮助我们改进现有连接器并添加更多连接器。如果您发现问题或有改进 Debezium 的想法,请告诉我们或 记录一个问题

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×