离年底只有几天了,是时候又一个 Debezium 版本了;因此,我非常高兴地宣布 Debezium 0.9.0.Beta2

此版本支持 MySQL 8 和 Oracle 11g;它包含了 SQL Server 和 Oracle 连接器监控的第一个指标集,对 MongoDB 事件展平 SMT 进行了一些改进,以及大量的错误修复。总的来说,已解决不少于 42 个问题;非常明显,这其中一定有更深层的含义;)

特别感谢以下 Debezium 社区成员为这个版本做出的贡献:Eero KoplimetsGrzegorz KołakowskiHanlin LiuLao MeiRenato MefiTautvydas JanuskeviciusWout ScheepersZheng Wang

接下来,让我们仔细看看 0.9 Beta2 版本带来的一些更改。

SQL Server 和 Oracle 连接器的监控和指标

继 MySQL 连接器的示例之后,SQL Server 和 Oracle 的连接器现在通过 JMX 公开了一系列用于监控的指标(DBZ-978)。这包括上次 CDC 事件以来的时间、上次事件的偏移量、事件总数、快照过程中剩余和已扫描的表等。有关如何启用 JMX 的详细信息,请参阅 监控文档。下图显示了在 OpenJDK 的 Mission Control 工具中显示值的示例。

Monitoring the Debezium SQL Server connector

我们计划在未来版本中扩展公开的指标集,并为 Postgres 和 MongoDB 提供这些指标。请通过评论 JIRA 问题 DBZ-1040 告诉我们您希望看到的指标。

此外,我们还创建了一个 Grafana 仪表板来可视化所有相关指标。

Connector metrics in Grafana

我们将很快详细介绍监控和仪表板;但如果您有兴趣,可以查看我们示例仓库中的 此演示

杂项功能

从 Debezium MySQL 连接器已知的 "snapshot.delay.ms" 选项现在也适用于所有其他 Debezium 连接器(DBZ-966)。这在将多个连接器部署到 Kafka Connect 集群时非常有用,因为这可能会导致集群中的连接器重新平衡,从而中断并重新启动已部署的连接器实例正在运行的快照。通过指定延迟来避免这种情况,允许在快照完成前等待重新平衡阶段完成。

MongoDB CDC 事件展平转换器(MongoDB CDC Event Flattening)已得到多项改进:

  • 支持 MongoDB 的 $unset 操作符(DBZ-612

  • 支持完整文档更新(DBZ-987

  • 用于删除删除和墓碑消息的新选项(DBZ-563

  • 将操作的原始类型作为头部参数传达的选项(DBZ-971);此选项也可用于关系连接器的展平 SMT(Flattening SMT),当接收连接器需要区分插入和更新时非常有用。

错误修复

一如既往,我们还修复了 Debezium 用户报告的大量错误。已修复的问题包括:

  • 与 GTID 模式下 MySQL 更改流相关的几个错误(DBZ-923DBZ-1005DBZ-1008

  • SQL Server 连接器中保留名称的表处理(DBZ-1031

  • MySQL 连接器重启后可能发生的事件丢失(DBZ-1033

  • TOASTed 列的未更改值导致 Postgres 连接器失败(DBZ-842

有关已解决问题的完整列表,请参阅 更改日志

后续步骤

我们计划在 1 月初发布 Debezium 0.9 的候选版本。如果没有出现关键问题,Debezium 0.9.0.Final 将在 1 月底发布。对于候选版本,我们主要安排了进一步的错误修复、SQL Server 连接器的改进以及其他指标的添加。

同时,我们将再次关注 Oracle 连接器,最终实现期待已久的基于 LogMiner 的捕获实现(DBZ-137)。这将是 Debezium 0.10 的主要功能。

此外,我们还将花费一些精力在博客和演示方面;具体来说,我们正在考虑撰写和演示新的监控和指标支持、高可用性架构(包括 MySQL、HAProxy 和 Debezium 的故障转移),以及用上下文信息(如当前用户或用例标识符)丰富 CDC 事件。敬请关注!

在 0.10 版本之后,我们在未来一年里为 Debezium 制定了 一些宏伟的计划。如果您也想提出您的想法,请在 邮件列表中 或在下面的评论中告诉我们,我们期待您的反馈。

至此,所有要说的就是 “祝大家节日快乐!”

祝数据流变更愉快,2019 年再见!

Gunnar Morling

Gunnar 是一位软件工程师,内心是一个开源爱好者,目前在 Confluent 担任技术专家。此前,他曾帮助构建一个基于 Apache Flink 的实时流处理平台,并领导了 Debezium 项目,这是一个用于变更数据捕获的分布式平台。他是 Java Champion,并创立了多个开源项目,如 JfrUnit、kcctl 和 MapStruct。Gunnar 是一位热情的博主 (morling.dev),并曾在 QCon、Java One 和 Devoxx 等各种会议上发表演讲。他居住在德国汉堡。

   


关于 Debezium

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

参与进来

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

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