随着一年接近尾声,我很高兴地宣布 Debezium 2.4 系列的第一个维护版本,即 Debezium 2.4.1.Final。
虽然我们的维护版本主要侧重于错误修复和稳定性改进,但我们从最新的 Debezium 2.5 开发系列中回溯了一些新功能。所有这些新功能都侧重于 Kubernetes 的 Debezium Operator,所以让我们快速深入了解这些细节。一如既往,您可以在 发行说明中找到此版本的完整更改列表。
Debezium Operator - 指定镜像拉取密钥
在某些情况下,Debezium Server 镜像可能不包含您选择的部署所需的所有组件,例如镜像中未包含的专有驱动程序。在这种情况下,用户通常会从基础镜像构建自己的镜像以包含这些文件。然后,通常会将新创建的镜像放置在镜像容器注册表中,您可能需要凭证才能为部署获取该镜像。Debezium 2.4.1.Final 引入了直接在 CRD 中指定这些凭证的功能。(DBZ-6962)
runtime:
templates:
pod:
imagePullSecrets:
- name: debezium-server-secret Debezium Operator - 指定容器资源
在使用 Kubernetes 上的 Debezium Server 时,您可能希望限制 Pod 消耗的资源,尤其是在您定期流式传输大量数据时。Debezium 2.4.1.Final 引入了在 Pod 模板中指定这些约束的能力。(DBZ-7052)
runtime:
templates:
container:
resources:
limits:
memory: "64Mi"
cpu: "250m"
requests:
memory: "128Mi"
cpu: "500m" 有关支持的属性的更多详细信息,请参阅 Kubernetes 文档。
Debezium Operator 指标端点改进
Debezium 2.4.1.Final 引入了一个新的 JMX 指标端点,以更好地收集和暴露 Debezium Operator 和 Debezium Server 的指标。(DBZ-7053)可以通过在自定义资源定义中添加以下行来启用此功能:
spec:
runtime:
jmx:
enabled: true
port: 1099 该端点目前不支持身份验证和 SSL,但这些功能已纳入路线图,将在未来的版本中作为对该功能的补充性更改添加。
其他修复
此外,此版本还包含相当多的稳定性修复和 bug 修复。其中包括:
-
Oracle RAC 抛出 ORA-00310: 需要存档日志序列 DBZ-5350
-
Oracle 缺少 CDC 数据 DBZ-5656
-
缺少 Oracle CDC 记录 DBZ-5750
-
多个 debezium:offsets Redis 客户端 DBZ-6952
-
sink 连接器中非 avro 列名的错误大小写行为 DBZ-6958
-
Oracle 19c 丢失事件 DBZ-6963
-
正确处理 bytea 字段,用于 jdbc sink 到 postgresql DBZ-6967
-
Debezium jdbc sink 处理截断事件失败 DBZ-6970
-
Debezium jdbc sink 应抛出不支持 schema 更改主题的异常 DBZ-6990
-
GA 版本 OLM bundle 版本无效 DBZ-6994
-
进一步重构以纠正增量快照主题的下游渲染 DBZ-6997
-
ALTER TABLE 在向 JDBC 接收器目标添加多个列时失败 DBZ-6999
-
CSV 元数据中 zulip chat 的链接无效 DBZ-7000
-
确保在与 rebalance 或 sync 主题的连接丢失时终止任务 DBZ-7001
-
CSV 元数据中缺少 .metadata.annotations.repository 字段 DBZ-7003
-
单引号复制和数据丢失 DBZ-7006
-
Oracle 连接器:有效负载大小超过 76020 字节将被截断 DBZ-7018
-
在 Timezone Converter 测试中使用可选 schema DBZ-7020
-
DDL 语句无法解析 DBZ-7030
-
Debezium Embedded Infinispan 性能缓慢 DBZ-7047
-
更新 operator 依赖项并添加 qosdk platform bom DBZ-7048
-
字段排除对已移除字段的事件无效 DBZ-7058
-
合并资源标签和注解 DBZ-7064
-
允许 DS JMX 在 k8 上使用用户名-密码认证 DBZ-7087
-
Debezium 在解析 MySQL DDL 语句(特定 INSERT)时崩溃 DBZ-7119
-
Debezium-ddl-parser 在解析 MySQL DDL 语句(特定 UNION)时崩溃 DBZ-7140
总共有 30 个问题在此版本中得到修复。非常感谢社区中所有为此版本做出贡献的贡献者:Anisha Mohanty、Bertrand Paquet、Bob Roldan、Chris Cranford、David Remy、Don Seiler、Harvey Yue、Jakub Cechacek、Jiri Pechanec、Mario Fiore Vitale、Nancy Xu、Robert Roldan、Sergey Eizner、Thomas Thornton、Vojtech Juranek,以及 adityajain311995!
下一步是什么?
正如我们在上次版本公告中所述,由于即将到来的假期季,Debezium 2.5 的发布节奏已有所缩短。Debezium 2.5 的下一个预览版本将是我们的第一个,并且很可能是唯一一个 Beta 版本,将于本月晚些时候发布。我们计划在 12 月的第一周左右发布一个候选版本,并在 12 月中旬(假期前)发布最终版本,从而结束 Debezium 2.5 系列的发布。
我们还在继续推进 MariaDB 支持的审查和流程。未来几周可能会有一些关于此进展的消息,因为我们将开始为这一特定功能的实现找到前进的道路。团队还继续致力于 Debezium Engine 的改进,以及更多工作。您可以在我们的 路线图上找到有关 Debezium 2.5 持续计划的所有详细信息。
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。