我很荣幸地宣布 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.ms 和 redis.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。
非常感谢在此次发布中做出贡献的所有社区成员:Andrei Isac、Anisha Mohanty、Bob Roldan、Chris Cranford、David Haglund、Dominique Chanet、Farid Uyar、Gunnar Morling、Harvey Yue、Ismail Simsek、Jason Schweier、Jiri Novotny、Jiri Pechanec、Mark Drilling、Nathan Smit、Paweł Malon、René Kerner、Shichao An、Snigdhajyoti Ghosh、Vojtech Juranek 以及 Yossi Shirizli!
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。