我非常高兴地宣布 Debezium 1.3.0.CR1 的发布!
随着我们接近 Debezium 1.3 Final 的最后冲刺,我们抓住了这个机会为 ByteBufferConverter 添加了代理转换器支持,并引入了一个 debezium-scripting 模块。此外,还有一系列错误修复和相当多的文档整理工作;总的来说,已为此版本解决了 不少于 15 个问题。
ByteBufferConverter 改进
ByteBufferConverter 是一个与 Outbox 事件路由 SMT 一起使用的转换器,用于序列化现有的 Avro 负载列。在最近的一份报告 (DBZ-2396) 中,ByteBufferConverter 无法序列化从配置为发出心跳、事务元数据或模式更改事件的连接器发出的事件。为了提高转换器在发出这些事件时的兼容性,ByteBufferConverter 现在可以配置为将事件序列化委托给另一个转换器。此委托是必需的,以便可以序列化心跳、事务元数据和模式更改事件(如果适用)。
为了使用 Outbox 事件路由 SMT 和 ByteBufferConverter 处理这些事件类型,必须更改连接器配置以反映委托转换器及其可配置选项。
例如,要将 Apache Kafka 的 JsonConverter 用作禁用模式的委托,必须将以下配置包含在连接器中
value.converter=io.debezium.converters.ByteBufferConverter
value.converter.delegate.converter.type=org.apache.kafka.connect.json.JsonConverter
value.converter.delegate.converter.type.schemas.enable=false 有关使用 ByteBufferConverter 的更多信息,请参阅 Outbox 事件路由文档中 使用 Avro 作为负载格式 部分。
脚本模块
在此版本中,用于基于内容的路由和过滤的 SMTs(两者都使用 JSR 223 脚本引擎)已从 debezium-core 移至一个单独的工件 debezium-scripting (DBZ-2549)。任何先前使用这些 SMTs 的连接器都需要将新的工件添加到这些连接器的插件目录中。
在使用 Debezium Kafka Connect 容器镜像时,将环境变量 ENABLE_DEBEZIUM_SCRIPTING 设置为 true 以启用此功能。此更改是为了允许脚本功能仅在具有适当安全配置的 Kafka Connect 配置接口的环境中可用。
其他特性和错误修复
此外,社区还完成了其他一些特性和修复工作
一如既往,请参阅 发行说明 以获取已解决问题的完整列表以及从早期 Debezium 版本升级的程序。
非常感谢 Guillaume Smet 和 Grant Cooksey 为此版本做出的贡献。
展望
如果没有任何意外的回归或错误报告,Debezium 1.3 Final 应于下周发布。在此之前,我们将专注于进一步的完善工作。由社区主导的 Debezium Vitess 连接器开发工作 也进展顺利,该新连接器的初始版本计划在 10 月下旬随 Debezium 1.4 Alpha1 一起发布。
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。