Flink CDC 核心:Debezium 1.9.0.Beta1 发布!
我很高兴地宣布 Debezium 1.9.0.Beta1的发布!
此版本包括 Debezium Server 的许多新功能,包括 Knative Eventing 支持和使用 Redis 接收器的偏移存储管理、SQL Server 连接器的多分区缩放以及各种错误修复和改进。总体而言,此版本已修复56 个问题。
让我们仔细看看其中的几个。
Debezium Server Knative Eventing
自从在 1.2 版中引入 Debezium 产品组合以来,Debezium Server 已经发展了很多。在这个版本中,我们添加了一个新的接收器实现来支持Knative Eventing。
Knative Eventing“提供了将事件从生产者路由到消费者的工具和基础设施”,这与 Apache Kafka 允许通过消息主题交换事件的方式非常相似。借助 Debezium Server,您现在可以利用新的debezium-server-http接收器将 Debezium 更改数据事件传递到 Knative Broker,这是一种 Kubernetes 资源,它定义了用于收集CloudEvents并将其分发给消费者的网格。换句话说,Debezium Server 可以充当“本机”Knative 事件源。
为了开始使用 Debezium 和 Knative Eventing,您只需使用所需的源连接器配置 Debezium 服务器,然后使用以下内容配置接收端:
debezium.sink.type=http
debezium.format.value=cloudevents
接收器将尝试根据 K_SINK
环境变量自动检测端点。如果此变量未定义任何值,您可以直接使用以下命令显式提供端点 URL:
debezium.sink.http.url=https://<hostname>/<end-point>
我们对这款新的接收器连接器感到非常兴奋,我们期待您的所有反馈。非常感谢Chris Baumbauer 所做的出色贡献!
Debezium 服务器的 Redis 管理的偏移量
Redis的几个人最近加强了关于集成 Debezium 和Redis Streams的故事。在 1.9.0.Alpha1(通过批处理)完成性能改进之后,该工作的另一个结果是能够在 Redis中存储连接器偏移量。对于下一个 1.9 早期访问版本,您可以期待 Redis 支持的数据库历史实现,该团队还致力于实现对 Debezium Server 的重试支持。非常感谢Yossi Shirizli、Oren Elias和所有其他 Redis 人员,他们不仅为 Redis Streams sink 做出了贡献,还为整个 Debezium 和 Debezium Server 做出了贡献!
SQL Server 连接器的多分区扩展
一些数据库平台,例如 SQL Server 和 Oracle,支持在单个物理数据库服务器实例中创建和管理多个逻辑数据库。传统上,来自多个逻辑数据库的流式更改需要单独的连接器部署。现在这样的部署策略本身并没有什么问题,但是如果你有很多逻辑数据库,它很快就会开始显示出它的缺点;例如,在每个租户一个逻辑数据库的多租户场景中,每个数据库设置和操作一个连接器的开销可能会成为瓶颈。除此之外,通过 Kafka Connect 的任务概念,处理来自多个逻辑数据库的更改事件非常适合并行化。
在过去的几个 1.x 版本中,大量的工作已经对 Debezium 的通用连接器框架进行了关键的根本性更改,为新的水平扩展策略奠定了基础。
此新策略的初始目标之一是在单个 SQL Server 实例中从多个逻辑数据库流式传输更改时消除对多个连接器部署的需要。此外,以使监控工具能够从以连接器为中心的角度以及从每个正在处理的逻辑数据库报告连接器的状态和运行状况的方式公开指标至关重要。在这个版本中,我们已经实现了这些目标。
但这只是开始!
这个基础为我们可以转向新的水平扩展策略奠定了基础。Debezium 使用基于单任务的架构,这开启了真正利用多节点 Kafka Connect 集群的强大功能并跨多个任务分配工作块的可能性。此外,这可以扩展到其他连接器,例如 Oracle。
这项工作由 SugarCRM 的Sergei Morozov周围的团队领导,他们已经在多分区模式下部署了 SQL Server 连接器,该模式由内部分叉构建,他们在内部维护该内部分支,直到整个工作都被上游化。我们非常非常感谢 Sergei、Jacob Gminder、Mike Kamornikov 以及来自 SugarCRM 的其他所有人,他们孜孜不倦地为 Debezium 社区实现这一目标,我们非常期待继续和进一步扩大这种密切的合作。
其他修复和更改
1.9.0.Beta1 版本中的进一步修复和改进包括:
-
MySQL ( DBZ-4707 ) 和 Oracle ( DBZ-4641 , DBZ-4662 , DBZ-4706 , DBZ-4746 , DBZ-4752 , DBZ-4763 )的各种 DDL 解析器修复
-
更正了 PostgreSQL 连接器的长时间运行事务问题 ( DBZ-2306 )
-
Oracle 连接器稳定性改进(DBZ-4635、DBZ-4715、DBZ-4723、DBZ-4737、DBZ-4744)
请参阅发行说明以了解有关这些以及此版本中进一步修复的更多信息。
与往常一样,非常感谢为此版本做出贡献的每个人!
展望
随着 Beta1 发布完成,我们正在接近 1.9 发布周期的最后阶段。根据收到的问题报告,您可以预计未来几周内的新版本可能是 CR1。
随着我们转向并展望 1.9 之后,您可以期待 Debezium 2.0 的工作将于 2022 年 4 月上旬开始。当前的路线图是投入 2 个完整的发布周期,这意味着您可以期待 Debezium 2.0 的某个时间接近 2022 年 9 月底。同时,您可以期待在整个过程中定期更新 Debezium 1.9。
如果您对 Debezium 2.0 感兴趣,到目前为止,我们已经在DBZ-3899中收集了许多项目。这不是一个详尽的列表,也没有对这个列表进行优先级排序和范围限定为您在 2.0 中可以预期的内容;然而,我们已经确定了社区或团队认为对于这个新的主要版本来说是可操作的任务。如果您有什么想看的,请花点时间就上述 Jira 票提出讨论,或者在我们的邮件列表中加入有关该主题的讨论。