我非常高兴地分享 Debezium 1.2.0.Beta2 已发布!

此版本的主要核心功能是 *Debezium Server*,这是一个专用的独立运行时,将 Debezium 的开源变更数据捕获功能开放给 Amazon Kinesis 等消息基础设施。

总的来说,社区自 Beta1 版本以来修复了 25 个问题,其中一些我们将将在本文的其余部分更详细地探讨。

Debezium 服务器

添加 Debezium Server 运行时是本项目的一个重要里程碑。它是一个即用型独立应用程序,用于运行 Debezium 连接器。有了 Debezium Server,用户现在可以在三种不同的方式中选择一种来操作 Debezium,以满足其个性化需求。

  • 作为 Kafka Connect 的插件,将数据变更事件摄取到 Apache Kafka 集群中

  • 通过 Debezium Engine,作为库嵌入到定制的基于 JVM 的应用程序中

  • 通过 Debezium Server,将数据变更事件发送到越来越多的消息平台,例如 Kinesis

你应该使用哪种执行模式取决于你的具体先决条件、要求和 CDC 用例。运行 Apache Kafka 并希望利用丰富的连接器生态系统设置无代码数据集成管道的组织,应该选择 Kafka Connect 方法。应用程序内缓存失效可以通过 Debezium 嵌入式引擎受益。Debezium Server 最终是为了那些希望利用 Debezium 的 CDC 功能,但使用 Apache Kafka 以外的消息平台的用户的。虽然以前可以通过嵌入式引擎和一些定制的 Java 编程来实现这一点,但 Debezium Server 将大大简化这种情况。

Debezium Server 由流行的 Quarkus 技术栈提供支持,是一个现成的、可配置的 Java 应用程序,它运行 Debezium 连接器,并通过选择的接收器适配器将产生的变更事件传播给消费者。Debezium Server 最初支持 Amazon Kinesis,其架构是可扩展的,很快将支持其他适配器(例如 Google Cloud Pub/Sub 或 Microsoft Azure Event Hubs)。通过 Debezium Server 扩展 API,你还可以为首选的将变更事件传播给消费者的基础设施实现自定义接收器适配器。

最终,Debezium Server 也是实现我们 CDC 即服务愿景的手段,它可以与 Kubernetes 和 Knative 等云原生基础设施无缝集成。本次发布标志着这一努力的第一步,我们非常期待与 Debezium 社区一起朝着这个目标努力。

请继续关注更多接收器适配器、容器镜像、对 Knative Eventing 的支持、在 Kubernetes 上运行 Debezium Server 的 Operator 以及更多内容!

其他特性和修复

除了 Debezium Server,本次发布还包含了一些其他改进和修复。对 Debezium 附带的各种单消息转换 (SMT) 进行了一些改进。

  • 最近添加的用于基于内容的变更 事件过滤路由 的 SMT 现在可以应用于部分主题(DBZ-2024

  • Record headers 和 topic name 会暴露给为这些 SMT 配置的脚本表达式,因此它们可以由过滤和路由逻辑进行评估(DBZ-2074

  • 逻辑 主题路由 SMT 可以选择将消息键按原样传递,而不是用源主题标识符进行丰富(DBZ-2034);这在键的唯一性已经跨不同的重路由主题得到保证时非常有用,例如,当将分区 Postgres 表的更改事件路由到一个主题时。

Debezium 的 Testcontainers 集成 现在允许使用自定义容器镜像来运行 Kafka Connect(DBZ-2070),如果您想在集成测试中利用自定义连接器、转换器或 SMT,这将非常方便。对于 SQL Server 连接器,现在可以选择跳过获取 LSN 时间戳的查询(DBZ-1988)。这可以帮助显著提高连接器的吞吐量。

有几处修复与 MySQL DDL 解析器相关,例如,由于 MySQL 8.0.x 中增加了 DDL 功能(DBZ-2080,“无法解析带有命名主键的 MySQL ALTER 语句”,DBZ-2067;“DDL 包含 algorithm=instant 时连接器出错并停止”)以及与 MariaDB 一起使用时(DBZ-2062,“如果 compression 关键字包含反引号 (``) DDL 语句会抛出错误”)。

一如既往,您可以在 发行说明 中找到所有已解决问题的完整列表和升级说明。

非常感谢所有为本次发布做出贡献的社区成员:Aaron Brady, Bingqin Zhou, Braden Groom, Fándly Gergő, Grant Cooksey, Joy Gao, Juan Antonio Pedraza, Max Kaplan, and Xuan Shen!

Gunnar Morling

Gunnar 是一位软件工程师,内心是一个开源爱好者,目前在 Confluent 担任技术专家。此前,他曾帮助构建一个基于 Apache Flink 的实时流处理平台,并领导了 Debezium 项目,这是一个用于变更数据捕获的分布式平台。他是 Java Champion,并创立了多个开源项目,如 JfrUnit、kcctl 和 MapStruct。Gunnar 是一位热情的博主 (morling.dev),并曾在 QCon、Java One 和 Devoxx 等各种会议上发表演讲。他居住在德国汉堡。

   


关于 Debezium

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

参与进来

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

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