我很高兴地宣布 Debezium 1.4.0.Beta1 发布!
此版本包括对分布式追踪的支持,Db2 的小写表和 schema 命名,指定 MySQL 快照记录为创建或读取操作,以及对 Vitess 的可空和主键列的增强。
总的来说,社区为本次发布修复了 39 个问题。让我们仔细看看其中的亮点。
分布式跟踪
简而言之,分布式跟踪是一种用于分析和监控应用程序的模式,可以快速识别故障或性能问题。跟踪的工作方式是让分布式进程中的每个组件贡献一块称为“span”的元数据。每个 span 都包含有关该组件工作单元的唯一详细信息。通常,一个完整的分布式跟踪由多个 span 组成。
Debezium 中的分布式跟踪通过使用 **ActivateTracingSpan** SMT 来启用。
"transforms": "tracing"
"transforms.tracing.type": "io.debezium.transforms.tracing.ActivateTracingSpan" 上述配置将导致发出的消息头包含跟踪键/值对。
一篇深入讨论分布式跟踪支持的博客文章,包括通过 outbox 模式进行的微服务数据交换的端到端跟踪,将在不久后发布。
Bug 修复
此外,还修复了许多 Bug,例如:
-
DDL 解析器:允许 LIMIT 子句中的存储过程变量 DBZ-2692
-
openshift 部署文档中的 MySQL 命令错误 DBZ-2746
-
长时间运行的事务将被放弃并忽略 DBZ-2759
-
MS SQL Decimal 默认值与列定义精度不匹配导致异常 DBZ-2767
-
Cassandra 连接器无法完全关闭 DBZ-2768
-
MySQL 解析器对 BINARY 排序规则快捷方式失败 DBZ-2771
-
PostgresConnectorIT.shouldResumeStreamingFromSlotPositionForCustomSnapshot 在 CI 上使用 wal2json 时失败 DBZ-2772
-
连接器配置属性 "database.out.server.name" 对 Logminer 实现不相关,但无法省略 DBZ-2801
-
Debezium 不支持 CHARACTER VARYING mysql 标识符(对应 varchar) DBZ-2821
-
当 OkHttp Response 对象被返回时,不应使用 try-with-resources DBZ-2827
-
EmbeddedEngine 在 commitOffsets 被中断时不会关闭 DBZ-2830
-
Rename user 命令解析失败 DBZ-2743
衷心感谢社区所有为本次发布做出贡献的贡献者:Jeremy Ford、Matt Beary、Vadzim Ramanenka、John Martin、Kewei Shang、Hoa Le、Ramesh Reddy 和 Denis Andrejew。
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。