我很荣幸地宣布 Debezium 1.7 系列的第一个版本,1.7.0.Alpha1!
随着夏天的如火如荼,此版本为 Debezium Oracle 连接器带来了额外的改进,同时也为其他连接器带来了改进。
替代 Oracle Connector LogMiner 处理器
Debezium Oracle 连接器使用内存中的缓冲区来缓存正在进行的事务更改,直到事务提交或回滚。此缓存可能需要显著的内存占用,具体取决于事务中的事件数量、正在进行的并发事务数量以及代表每个事件的数据本身(例如大型字符或二进制对象)。对于一些存在持续的长时间运行事务的环境来说,这可能难以管理。
本次发布对连接器处理代码进行了重大的重构,允许以多种模式处理 LogMiner 更改事件。开箱即用地,内存实现仍然是默认实现,但我们包含了一个基于 Infinispan 分布式数据存储的新实现。此实现使得跟踪任意数量的正在进行的事务成为可能,无论其大小或持续时间如何。
要利用新的 Infinispan 实现,必须提供以下配置选项
log.mining.buffer.type=infinispan
log.mining.buffer.location=/path/to/shared/storage 由于这是早期工作,新的 Infinispan 缓冲区模式目前有一些限制
-
Infinispan 的配置不对用户公开以进行调优
-
仅支持基于文件的缓存存储;如果您在多节点 Kafka Connect 集群中工作,为了支持 Connect 集群中连接器任务的重新平衡,必须使用网络文件系统作为缓存存储
这不应阻止您试用并向我们发送尽可能多的反馈以供进一步改进。我们预计将在下一个版本中删除上述限制。
增量快照
1.6 版本的主要功能也得到了新的改进。Debezium Oracle 连接器现在支持增量快照,与其他连接器的方式相同,因此 Oracle 用户现在可以轻松地将新表添加到捕获列表中,并在运行时对它们进行快照。
对于 MySQL 连接器,有一个新的增量快照模式,可用于不允许写入 signal 表的数据库。Kate Galieva 发明了一种基于 GTID 列表的方法,可用于在不写入数据库的情况下提供水印。感谢您的精彩贡献!
总而言之,此次发布修复了 49 个问题。非常感谢所有贡献的社区成员:Blake Peno、Alfusainey Jallow、Bingqin Zhou、Hossein Torabi、Katerina Galieva、Kyley Jex、Martín Pérez、Naveen Kumar KR、Patrick Chu、Pavel Strashkin、Raphael Auv、Sergei Morozov、Thiago Dantas、Tin Nguyen、Tommy Karlsson、WenChao Ke 和 yangsanity。
对于即将到来的 1.7 预览版本,我们计划专注于完成 Oracle LogMiner 处理器后续任务,并提供对基于 JDBC 的处理器的支持。我们将探索对 MongoDB 的增量快照支持,并研究对 MariaDB 的支持。
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。