我很荣幸地宣布下一个 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 窗口,您现在可以看到一个连接器有两个新的子部分:通知和信号,如下所示。
新的 signals 部分允许您调用 JMX bean 上的操作,以将信号传输到 Debezium。此信号类似于逻辑信号表结构,它接受 3 个参数:唯一标识符、信号类型和最终的信号负载。以下是从 jconsole 看似的效果:
接收通知
新的 notifications 部分允许您接收和响应 Debezium 通过 JMX bean 捕获的通知。Debezium JMX bean 将缓冲所有通知,以确保不会错过任何通知。以下是从 jconsole 看似的效果:
| JMX bean 不会自动清除通知队列。为了避免内存问题,请务必在处理完所有通知后调用通知 bean 上的 |
我们期待您对这种通过 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 Mohanty、Jakub Cechacek、Jesse Ehrenzweig、Jiri Pechanec、Mario Fiore Vitale、Ronak Jain、Thomas Thornton、Tommy Karlsson 和 Vojtech Juranek!
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。