我很荣幸地宣布 Debezium 2.3.2.Final 现已发布。

此版本包含多项错误修复,以解决回归、稳定性和文档更新问题。如果您目前正在考虑升级到 Debezium 2.3.x 版本流,我们强烈建议您考虑使用此版本。让我们快速看一下回归和错误修复。

SQL Server 启动失败

如果您最近尝试升级到 Debezium 2.3.1.Final,在使用 SQL Server 连接器时,您可能会收到一条异常错误消息:“Configuration query.fetch.size is defined twice.”(配置 query.fetch.size 被定义了两次)。

不幸的是,这个错误是意外发生的,也没有解决该问题的变通方法。不过,Debezium 2.3.2.Final 现已发布,能够解决此问题;此版本解决了此回归问题,允许 SQL Server 连接器再次启动。如果您计划进行升级,并且依赖 SQL Server 连接器,我们强烈建议您避免使用 2.3.1.Final 版本,而是直接升级到 2.3.2.Final。

Oracle 默认获取大小已更改

Debezium 使用 JDBC 来与 Oracle 数据库进行通信。Debezium for Oracle 连接器依赖于两个配置属性,snapshot.fetch.sizequery.fetch.size 来控制每次数据库“fetch”调用时查询返回的数据量。

当这些属性配置过低时,可能会导致 Debezium 执行更多与数据库的网络往返来读取数据,而这些网络延迟会累积起来,尤其是在处理大型结果集时。当这些属性配置过高时,可能会导致 Debezium 消耗更多内存,但会减少获取往返数据库的数据时产生的网络延迟。最终,在基于理想数据量和环境的内存及硬件约束之间取得平衡非常重要。

在与一位社区成员讨论性能时,我们得出结论,将这些值从默认的 2000 调整到 10000,可以显著提高连接器在其环境中的吞吐量。因此,在此版本中,我们认为将默认值提高到 10000 是合乎逻辑的,可以为 Oracle 连接器用户提供更好的开箱即用体验。

现在,这些配置属性是性能调优的参数,并且不幸的是,不能保证在某些环境中有效的方法也一定 *普遍* 有效。请注意此更改,如果您遇到任何问题,可以随时在连接器配置中设置 snapshot.fetch.sizequery.fetch.size 属性,如果需要,甚至可以将其设置回先前的默认值 2000

其他更改

Debezium 2.3.2.Final 还包含许多 bug 修复和稳定性改进,如下所示:

  • 突出显示有关如何配置 schema history topic 以仅存储所需表数据的说明 DBZ-6219

  • MBean 命名应使用 topic.prefix 而不是 connector.server.name DBZ-6690

  • 上游文档缺少配置类型 DBZ-6707

  • 自定义属性步骤在验证用户添加的属性时未能正常工作 DBZ-6711

  • Oracle 在处理 DROP USER 时失败 DBZ-6716

  • 当上边界不在距离内时,Oracle LogMiner 挖掘距离计算应被跳过 DBZ-6733

  • MariaDB:不可解析的 DDL 语句 (ALTER TABLE IF EXISTS) DBZ-6736

  • 解耦 Debezium Server 和 Extension Quarkus 版本 DBZ-6744

  • MySQL 方言由于拼写错误,无法正确识别非默认值 longblob 类型 DBZ-6753

请参阅 发布说明,了解所有已修复的 bug、更新程序等更多信息。

非常感谢以下社区贡献者为 Debezium 2.3.2.Final 所做的贡献:Bob Roldan, Chris Cranford, Indra Shukla, Jiri Pechanec, Jochen Schalanda, Robert Roldan, Vojtech Juranek, Yashashree Chopada, faihofu, j2gg0s, and paul cheung

展望与未来?

Debezium 2.4 的新预览版本已经完成了大量工作。我们计划在下周中期发布下一个 Alpha2 版本,其中将包含大量新功能和改进。如果您希望在 2.4 版本中看到某些功能,现在仍然可以分享您的反馈和建议,请查看我们的 路线图,并通过 邮件列表 或我们的 聊天 与我们联系。

最后,Debezium 2.3 将继续接收维护更新。在社区对回归和 bug 修复没有负面反馈的情况下,我们可能会在本月晚些时候发布 2.3.3.Final。

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