随着北半球的夏天接近尾声,我们正翘首以盼秋天的色彩。在此期间,团队一直在忙于准备 Debezium 2.4 的下一个主要版本。今天,我很高兴地宣布,我们即将发布 Debezium 2.4.0.CR1。
此版本主要侧重于稳定性;然而,我们也有一些新功能作为最后的补充,值得强调。那么,让我们深入了解一下吧?!
重大变更
社区主导的 Vitess 连接器默认只重试一部分错误。这一行为已被改变,现在只有明确定义的错误才不会被重试。更多详情,请参阅 DBZ-6944。
新功能
MongoDB 并行增量快照
自 Debezium 1.x 引入增量快照以来,在捕获数据库事务中的更改的同时,对现有数据进行增量快照的过程一直是一个单线程活动。在添加新功能时,专注于基础并在此基础上构建是很常见的,这正是 MongoDB 所经历的。
PostgreSQL 16 支持
一周多前,PostgreSQL 公布了 PostgreSQL 16 的即时发布,我们很高兴地宣布 Debezium 2.4 将支持该版本。
| PostgreSQL 16 引入了从备用服务器进行逻辑复制的功能;然而,Debezium 尚未测试此功能,它将在 Debezium 的稍后版本中引入。目前,逻辑复制仍然只能通过主服务器支持。 |
Google Spanner GKE 工作负载身份支持
Google Kubernetes Engine (GKE) 支持工作负载身份,这使您可以使用比传统的基于 JSON 的密钥更安全的身份验证机制。在 Debezium 2.4 中,当未显式设置 JSON 密钥时,Spanner 连接器将自动默认使用 GKE 工作负载身份进行身份验证。感谢 laughingman7743 作为 DBZ-6885 的一部分所做的贡献。
其他修复
-
Ad-hoc 阻塞快照触发器会发出所有表的模式更改 DBZ-6828
-
当 V$TRANSACTION 中事务存在的 start_scn 为 0 时,Oracle 连接器首次启动时,日志挖掘将从最早的 scn 开始 DBZ-6869
-
确保连接器能够稳健地处理重新平衡事件 DBZ-6870
-
OpenLogReplicator 确认在重启时可能重新发送或省略事件 DBZ-6895
-
ExtractNewRecordState 的模式缓存未随 DDL 更改事件的到达而更新 DBZ-6901
-
当 application.properties 中未指定 RDI 端口时,Debezium 错误消息具有误导性 DBZ-6902
-
生成到 target/generated-sources 的 protobuf 文件会破坏构建 DBZ-6903
-
Redis Debezium Sink 的日志输出清理 DBZ-6908
-
JSON 对象列表中的值被省略 DBZ-6910
-
修复了日志命名 DBZ-6935
-
当 snapshot.mode 设置为 never 且配置了信号数据收集时,MySql 连接器会得到 NPE DBZ-6937
-
Oracle RAC 线程的健全性检查/重试 redo 日志不起作用 DBZ-6938
-
Drop 事件的表更改信息不正确 DBZ-6945
-
从信号和通知 MBean 的 ObjectName 中删除空格 DBZ-6957
altogether, 20 个问题已在此版本中修复。非常感谢所有为本次发布做出贡献的社区成员:Andy Pickler、Anisha Mohanty、Breno Moreira、Chris Cranford、Harvey Yue、Indra Shukla、Jakub Cechacek、Jiri Pechanec、Mario Fiore Vitale、Nancy Xu、Nir Levy、Ondrej Babec、René Kerner、Sergey Eizner、Thomas Thornton、Wu Zhenhua、Zheng Wang、laughingman7743 和 tison!
展望与未来计划?
我们现在正处于规划 Debezium 2.5 愿景及其未来发展方向的节点。我们最近举行了第一次社区会议,并讨论了我们的一些 2.5 路线图想法,其中一些包括:
-
为关系型连接器提供并行增量快照。
-
改进 MongoDB 对超出 16MB 的 BSONDocument 的支持。
-
Db2 在 z/OS 和 iSeries 平台上的支持。
-
JDBC Sink 连接器中的批处理支持。
-
Debezium Engine 内部任务和其他组件的并行化。
-
MariaDB 和 Oracle 23 的支持预览
更多详情,请查看我们的 路线图,了解 Debezium 2.5 及更高版本的相关信息。
此外,Debezium 将于下周参加 Current 2023。如果您将参加,请务必在周三下午 2:30 的“专家问答”环节停下来,参加关于 Debezium 和 Kafka 的讨论。此外,请务必在周三下午 4:30 的赞助商环节了解使用 Debezium、Strimzi、Apicurio 和 Kubernetes 等开源项目从边缘到云部署数据管道是多么容易。
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。