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