我非常高兴地宣布 Debezium 0.7.3 发布!
这主要是一个错误修复版本,但我们也添加了一些小型新功能。我们建议所有用户升级。从早期版本升级时,请查看您当前版本和 0.7.3 之间的所有版本的发行说明,以了解任何可能需要的升级步骤。
让我们更仔细地看看一些新功能。
所有连接器
使用新的连接器选项 tombstones.on.delete,现在您可以控制在记录删除时是否发出墓碑事件(DBZ-582)。这样做通常是正确的,因此保持默认行为。但在某些情况下,禁用墓碑可能是有益的,使用该选项可以变得更容易(之前您需要使用 SMT - 单消息转换 -,例如在使用 Debezium 的嵌入式模式时不支持)。此功能由我们的社区成员 Raf Liwoch 贡献。谢谢!
我们还花了一些时间处理一些操作方面的问题:Debezium 的变更数据消息中的 sourceInfo 元素包含一个新字段,表示创建消息的连接器的版本(DBZ-593)。这使得消息使用者可以根据版本采取具体行动。例如,这在新的 Debezium 版本修复了消费者到目前为止一直可以绕过的 bug 时非常有用。现在,在更新到这个新的 Debezium 版本后,就不应该再应用该变通方法了。版本字段将允许消费者决定是否应用变通方法。
Debezium 管理的所有线程的名称现在都遵循“debezium-<connector>-…”的格式(DBZ-587)。这有助于在分析线程转储时识别 Debezium 的线程。
Postgres 连接器
MySQL 连接器
MySQL 连接器可以在需要时自动创建 DB 历史主题(DBZ-278)。这意味着您不必自己创建该主题,也不必再依赖 Kafka 的自动主题创建(任何变更数据主题都将由 Kafka Connect 自动创建)。
连接器还可以选择在配置的间隔内将消息发送到专用的心跳主题(DBZ-220)。这在您只想捕获流量较低的表,而数据库中的其他表更改更频繁的情况下非常有用。在这种情况下,很长时间内都不会向 Kafka Connect 发出任何消息,因此也不会提交任何偏移量。这可能会在重启连接器时导致问题:它想要从最后一个已提交的偏移量恢复,而该偏移量可能不再存在于 binlog 中。但由于捕获的表没有更改,因此实际上不需要从如此旧的 binlog 位置恢复。通过定期将消息发送到心跳主题,可以避免所有这些问题,从而导致连接器看到的最后一个偏移量被提交。
在未来的版本中,我们也将把此更改推广到其他连接器。
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。