我很荣幸地宣布 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.size 和 query.fetch.size 来控制每次数据库“fetch”调用时查询返回的数据量。
当这些属性配置过低时,可能会导致 Debezium 执行更多与数据库的网络往返来读取数据,而这些网络延迟会累积起来,尤其是在处理大型结果集时。当这些属性配置过高时,可能会导致 Debezium 消耗更多内存,但会减少获取往返数据库的数据时产生的网络延迟。最终,在基于理想数据量和环境的内存及硬件约束之间取得平衡非常重要。
在与一位社区成员讨论性能时,我们得出结论,将这些值从默认的 2000 调整到 10000,可以显著提高连接器在其环境中的吞吐量。因此,在此版本中,我们认为将默认值提高到 10000 是合乎逻辑的,可以为 Oracle 连接器用户提供更好的开箱即用体验。
现在,这些配置属性是性能调优的参数,并且不幸的是,不能保证在某些环境中有效的方法也一定 *普遍* 有效。请注意此更改,如果您遇到任何问题,可以随时在连接器配置中设置 snapshot.fetch.size 和 query.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
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。