随着一年接近尾声,我很高兴地宣布 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

一个包含新 `imagePullSecrets` 配置的示例 CRD
runtime:
  templates:
    pod:
      imagePullSecrets:
      - name: debezium-server-secret

Debezium Operator - 指定容器资源

在使用 Kubernetes 上的 Debezium Server 时,您可能希望限制 Pod 消耗的资源,尤其是在您定期流式传输大量数据时。Debezium 2.4.1.Final 引入了在 Pod 模板中指定这些约束的能力。(DBZ-7052

指定 Pod 资源约束的示例 CRD
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 MohantyBertrand PaquetBob RoldanChris CranfordDavid RemyDon SeilerHarvey YueJakub CechacekJiri PechanecMario Fiore VitaleNancy XuRobert RoldanSergey EiznerThomas ThorntonVojtech Juranek,以及 adityajain311995

下一步是什么?

正如我们在上次版本公告中所述,由于即将到来的假期季,Debezium 2.5 的发布节奏已有所缩短。Debezium 2.5 的下一个预览版本将是我们的第一个,并且很可能是唯一一个 Beta 版本,将于本月晚些时候发布。我们计划在 12 月的第一周左右发布一个候选版本,并在 12 月中旬(假期前)发布最终版本,从而结束 Debezium 2.5 系列的发布。

我们还在继续推进 MariaDB 支持的审查和流程。未来几周可能会有一些关于此进展的消息,因为我们将开始为这一特定功能的实现找到前进的道路。团队还继续致力于 Debezium Engine 的改进,以及更多工作。您可以在我们的 路线图上找到有关 Debezium 2.5 持续计划的所有详细信息。

一如既往,如果您有任何疑问或反馈,请随时通过邮件列表Zulip 聊天与我们联系。下次再见,保持温暖!

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