我很荣幸地宣布下一个 Debezium 2.3 版本,即 2.3.0.CR1

此版本的主要重点是稳定 Debezium 2.3 版本,为最终版本的发布做准备,这通常意味着我们专注于错误修复;然而,此版本包含两个新功能。让我们花点时间深入了解这些新功能和任何值得注意的错误修复!

重大变更

本次发布不包含任何重大变更,因此从 Debezium 2.3.0.Beta1 升级到 2.3.0.CR1 应该是一个简单的直接替换。

如果您是从早期版本升级,请查看 发布说明 以了解可能需要的任何迁移步骤。

Debezium Server Kubernetes Operator

本次发布引入了新 Debezium Operator 的*预览*版本,它能够在 Kubernetes 中部署和管理 Debezium Server 实例。Debezium Server 允许您将数据源的变更事件流式传输到各种各样的消息基础设施。我们的目标是为希望利用 Kubernetes 进行可扩展性和高可用性部署的 Debezium 社区提供一个无 Kafka 的替代方案。

目前,由于 Operator 仍处于早期孵化阶段,文档 sparse;然而,我们确实打算在 2.3 剩余时间以及 Debezium 2.4 发布周期中对其进行改进。您可以在 GitHub 存储库中找到一个 部署示例 和对 自定义资源规范 的基本描述,作为短期参考。

目前我们不推荐生产环境部署此组件;然而,我们鼓励用户提供社区反馈。这些反馈将有助于评估该组件是否已准备好投入生产,或者是否仍有需要改进的地方以满足大家的需求。

JMX 信号和通知

Debezium 2.3 已引入新的信号通道和通知功能。此功能允许外部应用程序轻松地与 Debezium 集成,发送信号以执行各种任务,例如临时增量快照,并接收有关这些任务进度的通知。本次发布在此功能的基础上,增加了通过 JMX 发送信号和接收通知的能力。

发送信号

在此次发布中,信号通道子系统已得到改进,支持通过 JMX 发送信号。从 jconsole 窗口,您现在可以看到一个连接器有两个新的子部分:通知和信号,如下所示。

JConsole JMX metrics

新的 signals 部分允许您调用 JMX bean 上的操作,以将信号传输到 Debezium。此信号类似于逻辑信号表结构,它接受 3 个参数:唯一标识符、信号类型和最终的信号负载。以下是从 jconsole 看似的效果:

JConsole Sending Signals

接收通知

新的 notifications 部分允许您接收和响应 Debezium 通过 JMX bean 捕获的通知。Debezium JMX bean 将缓冲所有通知,以确保不会错过任何通知。以下是从 jconsole 看似的效果:

JConsole Receive Notifications

JMX bean 不会自动清除通知队列。为了避免内存问题,请务必在处理完所有通知后调用通知 bean 上的 reset 方法。

我们期待您对这种通过 JMX 与 Debezium 集成信号和通知的新方式提供反馈。

其他修复

  • skip.messages.without.change 的代码改进 DBZ-6366

  • FileSignalChannel 未加载 DBZ-6509

  • 在 Vitess 复制连接中利用 event.processing.failure.handling.mode DBZ-6510

  • MySqlReadOnlyIncrementalSnapshotChangeEventSource 在初始化期间强制使用 Kafka 依赖 DBZ-6511

  • Debezium 增量快照块大小文档不清楚或不正确 DBZ-6512

  • Debezium 增量快照块大小文档不清楚或不正确 DBZ-6515

  • 仅对某些错误使用错误处理模式 DBZ-6523

  • [PostgreSQL] LTree 数据未被流捕获 DBZ-6524

  • 为 PartitionRouting 使用更好的哈希函数 DBZ-6529

  • 开始为 Debezium Operator 发布夜间构建镜像 DBZ-6541

  • 开始为 Debezium Operator 发布镜像 DBZ-6542

总而言之,本次发布修复了 24 个问题。非常感谢所有为本次发布做出贡献的社区成员:Anisha MohantyJakub CechacekJesse EhrenzweigJiri PechanecMario Fiore VitaleRonak JainThomas ThorntonTommy KarlssonVojtech Juranek

下一步是什么?

随着 Debezium 2.3 快速接近最终发布,Debezium 2.4 也即将到来。

Debezium 2.4 的规划正在进行中,我们非常希望得到您的反馈。如果您有任何想法或建议,请通过 邮件列表 或我们的 聊天 与我们联系。Debezium 2.4 及更高版本的路线图将在下周与 Debezium 2.3 最终发布一起更新。

下次再见,在夏天来临之际,保持凉爽!

Chris Cranford

Chris 是 IBM 的一名软件工程师,之前在 Red Hat 工作,他致力于 Debezium 项目,并每天都在深入研究 Oracle 和 Change Data Capture 的各个方面。他此前曾从事 Hibernate(领先的开源 JPA 持久化框架)方面的工作,并且继续为 Quarkus 做贡献。Chris 居住在美国北卡罗来纳州。

   


关于 Debezium

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

参与进来

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

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