Debezium 团队很高兴地宣布 Debezium 0.9.3.Final 的发布!

这主要是发布了一个错误修复版本,并且是早期 Debezium 0.9.x 版本的直接替代品,但也有一些重要的重要新功能。总体而言,已解决 17 个问题

由于一些 Docker Hub 配置问题,容器镜像将稍有延迟发布。

新功能

0.9.3 版本带来了两项重要的功能改进

  • 针对 PostgreSQL 数据库,我们收到一个功能请求,希望在丢失复制槽后(例如,故障转移到次要数据库主机后),能够对复制过程进行部分恢复(DBZ-1082)。我们没有再增加一个快照模式,而是退一步,决定通过引入服务提供商接口(SPI)来使 PostgreSQL 的快照过程更加可定制。这允许您实现并注册自己的 Java 类来控制快照过程。有关 SPI 的一种可能的自定义实现,请参阅 DBZ-1082 的问题描述,该实现基于 PostgreSQL 的 catalog_xmin 属性,并选择所有在上次已知 xmin 位置之后更改的记录。要了解更多关于 SPI 的信息,请参阅 Snapshotter 合约。请注意,此功能仍处于孵化阶段,SPI 在此期间应被视为不稳定。

  • 不久前,我们发布了一篇关于使用 Debezium 实现 outbox 模式来传播微服务之间数据变更的博客文章。社区成员 Renato Mefi 扩展了这个想法,并创建了一个现成的单消息转换(SMT)实现,用于将事件从 outbox 表路由到特定主题。这个 SMT 现在是 Debezium 核心库的一部分(DBZ-1169)。其使用方法很快会在文档中说明;目前,请参阅 EventRouter 类型及其附带的配置类。

Bug 修复

我们对 Debezium PostgreSQL 连接器 进行了一些修复

  • 已修复导致快照过程中出现死锁的回归问题(DBZ-1161

  • hstore 数据类型在快照阶段能够正确工作(DBZ-1162

  • wal2json 插件也能够处理空事件(DBZ-1181),例如来自物化视图更新的事件;这应该有助于解决一些 PostgreSQL 日志文件无法被丢弃的问题,因为 Debezium 的复制槽未能推进。

  • 提交时间被正确转换为微秒(DBZ-1174

Debezium MySQL 连接器也进行了一些修复,尤其是在 SQL 解析器方面

  • 现在支持 SERIAL 数据类型和默认值(DBZ-1185

  • MySQL 语法中允许在 ALTER TABLE 中枚举表选项而不使用逗号的特定细节现在可以正常工作(DBZ-1186

  • 不再报告空的 MySQL 密码的误报(DBZ-1188

  • 对于没有默认主题复制值的代理,现在不再需要手动创建历史主题(DBZ-1179

现在可以使用单个 Oracle 连接器处理多个 schema(DBZ-1166)。

请查看 发行说明,了解 Debezium 0.9.3 中修复的完整问题列表。

非常感谢 Debezium 社区成员 Renato MefiShubham RawatAddison HighamJon CasstevensAshar HassanJosh Stanfield 对本次发布的贡献!

Jiri Pechanec

Jiri 是 Red Hat 的一名软件开发人员(也是前质量工程师)。他的职业生涯大部分时间都投入在 Java 和系统集成项目和任务中。他居住在捷克共和国布尔诺附近。

   


关于 Debezium

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

参与进来

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

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