我很荣幸地宣布 Debezium 1.9 系列的第二个版本,1.9.0.Alpha2

此版本包括对 Oracle 21c 的支持,围绕 Debezium Server 的 Redis 改进,配置 kafka.query.timeout.ms 选项,以及围绕 DDL 解析器、构建基础设施等的许多错误修复。

总的来说,社区为这个版本修复了 51 个问题。让我们更详细地了解一些亮点。

支持 Oracle 21c

Debezium Oracle 连接器已在最新发布的 Oracle 21c (21.3.0.0) 上进行了测试,并且兼容。如果您使用 LogMiner 或 Xstreams 适配器,现在应该无需任何更改即可使用 Oracle 最新的旗舰版本并流式传输变更事件。如果您使用的是 Oracle 12 或 Oracle 19 并执行了数据库升级,您的连接器配置应该无需更改即可保持兼容。

配置 kafka.query.timeout.ms

在使用 Kafka Admin Client 并发出 API 调用时,默认超时时间为 3 秒。新的 kafka.query.timeout.ms 字段可用于为 Kafka Admin Client 提供自定义超时时间,以避免在使用 TLS 或 SSL 加密的环��境中或网络延迟导致意外超时的潜在问题。

这得益于社区成员 Snigdhajyoti Ghosh 的辛勤工作。

Debezium Server Redis 的改进

我们在 Debezium Server 的 Redis 支持中新增了三个字段:

  • redis.retry.initial.delay.ms

  • redis.retry.max.delay.ms

  • batch.size

Redis 允许使用 maxmemory 配置指定最大内存限制;然而,如果未配置此字段,Redis 将继续分配内存。如果所有内存都被消耗,则会发生 OutOfMemory 异常。Redis sink 现在使用 redis.retry.initial.delay.msredis.retry.max.delay.ms 来设置初始和最大重试延迟,以提高对内存耗尽和连接相关问题的容错能力。如果您遇到此类异常,我们强烈建议您尝试这些新设置来提高 sink 的弹性和用户体验。

基于管道的事务可以显著增加 Redis 查询量。为了利用基于管道的事务,可以指定 batch.size 配置选项,该选项允许 Redis 批量写入变更记录,而不是逐条写入。

感谢 Yossi Shirizli 带来的这些精彩改进。

其他修复

一些值得注意的 bug 修复和升级包括:

  • 'Ad-hoc read-only Incremental snapshot' 的文档可能不一致 DBZ-4171

  • Oracle Logminer: 快照→流切换在进行中的事务中丢失数据库更改 DBZ-4367

  • DDL 解析问题:ALTER TABLE … MODIFY PARTITION … DBZ-4649

  • OracleSchemaMigrationIT 在使用 Xstream 适配器时失败 DBZ-4703

  • 将 UI 从 webpack-dev-server v3 升级到 v4 DBZ-4642

  • 将 postgres 驱动程序升级到版本 42.3.2 DBZ-4658

  • 升级到 Quarkus 2.7.0.Final DBZ-4677

  • 更新共享 UG 部署文件,以供下游 OCP 安装指南使用 DBZ-4700

  • 指示 XStream 不支持 ROWID DBZ-4702

  • 增量快照不考虑列的大小写敏感性 DBZ-4584

  • 构建触发器问题 DBZ-4672

  • 无法展开包含嵌套对象数组的 JSON 负载 DBZ-4704

我们还将把关键 bug 修复 backport 到 1.8 分支,并将在本周晚些时候发布 Debezium 1.8.1.Final。

Anisha Mohanty

Anisha 是 Red Hat 的一名软件工程师。目前在 Debezium 团队工作。她住在印度班加罗尔。

   


关于 Debezium

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

参与进来

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

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