Debezium日常分享系列之:Debezium 2.5.0.Alpha2 发布

Debezium日常分享系列之:Debezium 2.5.0.Alpha2 发布

  • 一、重大改变
    • 1.MongoDB 默认连接模式已更改
    • 2.Debezium 嵌入式引擎 已删除已弃用的 API
    • 3.MySQL 5.7 现在尽力支持
    • 4.CloudEvents - 重命名配置选项
  • 二、新功能和改进
    • 1.JDBC接收器批量支持
    • 2.无缝 MongoDB 大文档处理
    • 3.MySQL 8.2 支持
    • 4.SQL Server 通知改进
    • 5.Redis 架构历史重试现在受到限制
    • 6.SQL Server 驱动程序更新
    • 7.Debezium 服务器 Kinesis 接收器改进

Debezium 2.5.0.Alpha2版本包括各种改进、对 JDBC Sink 连接器的批量支持、对超过 16MB 障碍的 MongoDB 文档的无缝支持、MySQL 8.2 兼容性以及对 SQL Server 的信号改进。

一、重大改变

1.MongoDB 默认连接模式已更改

Debezium 2.5 的升级给 MongoDB 的默认实现带来了变化。在之前的版本中,默认的连接模式是replica_set;然而,在 Debezium 2.5 中,现在已经进行了分片。如果连接到分片集群并且未显式设置连接模式;因此,根据默认行为,必须检查连接器配置并进行调整。

总体而言,此更改是完全删除replica_set模式的更大努力的一部分。升级时请务必检查所有 MongoDB 连接器的连接器配置。

此重大更改会使现有连接器偏移无效,并且升级时将默认触发新快照。如果不需要或不需要快照,将需要相应地调整连接器配置的 snapshot.mode。

2.Debezium 嵌入式引擎 已删除已弃用的 API

Debezium 2.5 部分重点是改善 Debezium 嵌入式引擎的体验。将此预览版视为清理嵌入式引擎 API 的机会。

如果您对 Debezium 嵌入式引擎的使用使用了 EmbeddedEngine 上以前已弃用的任何 API,会发现这些方法已被删除。

3.MySQL 5.7 现在尽力支持

MySQL 社区宣布 MySQL 5.7 将于 2023 年 10 月末(即上个月)进入生命周期结束。这意味着 MySQL 社区没有计划继续为该版本的 MySQL 提供安全或错误修复补丁。

根据上游社区的消息,Debezium 也和其他厂商一样,围绕最近的消息进行调整。为此,从 Debezium 2.5 开始,我们将不再测试或支持 MySQL 5.7(如果满负荷),因此 MySQL 5.7 进入了“尽力而为”支持。

4.CloudEvents - 重命名配置选项

如果当前正在使用 CloudEvents 转换器发出符合 CloudEvents 格式的事件,请务必注意配置选项metadata.location 已重命名为metadata.source。需要确保在 Debezium 2.5 及更高版本中更新连接器配置以反映此更改。

二、新功能和改进

Debezium 2.5 还引入了相当多的改进,让我们分别看一下其中的每一项。

1.JDBC接收器批量支持

Debezium 于 2023 年 3 月首次引入 JDBC 接收器连接器,作为 Debezium 2.2 的一部分。在过去的几个月里,该连接器经历了多次迭代,以提高其稳定性、特性集和功能。 Debezium 2.5 建立在这些努力之上,引入了批量写入。

在以前的版本中,连接器分别处理每个主题事件;但是,新的批量写入支持模式会将事件收集到存储桶中,并使用尽可能少的事务边界将这些更改写入目标系统。此更改提高了连接器的吞吐量能力,并使与目标数据库的交互更加高效。

2.无缝 MongoDB 大文档处理

Debezium 在最近的版本中围绕大型文档处理引入了一些更改;然而,这些变化主要集中在使用 MongoDB 4 和 5 处理该用例。虽然这些改进肯定对那些旧版本有帮助,但 MongoDB 社区在 MongoDB 6 中引入了一种在数据库管道级别无缝处理此问题的方法。

Debezium 2.5 的 MongoDB 连接器现在使用 $changeStreamSplitLargeEvent 聚合功能,该功能是 MongoDB 6.0.9 的一部分引入的。这可以避免在处理超出 MongoDB 16MB 文档大小限制的文档时出现 BSONObjectTooLarge 异常。这个新功能由 oversize.handling.mode 选项控制,该选项默认失败。如果想利用这个新的选择加入功能,请调整此配置。

Debezium 只是利用了 MongoDB 数据库的底层功能。因此,该数据库仍然存在 MongoDB 文档中讨论的一些限制,这些限制仍然可能导致不遵守 MongoDB 拆分规则的大型文档出现异常。

3.MySQL 8.2 支持

MySQL 社区最近于 2023 年 10 月发布了一个新的创新版本 MySQL 8.2.0。这个新版本已经过 Debezium 的测试,我们很高兴地宣布我们正式支持这个新的创新版本。

4.SQL Server 通知改进

Debezium for SQL Server 的工作原理是读取数据库在所谓的捕获实例中捕获的更改。这些实例可以根据用户的需求来来去去,并且很难知道 Debezium 是否已经为给定的捕获实例完成了自己的捕获过程。

Debezium 2.5 通过发出一个名为 Capture Instance 的新通知聚合来解决这个问题,允许任何观察者意识到 Debezium 不再使用捕获实例的时间。此新通知包含各种连接器详细信息,包括连接器名称以及开始、停止和提交 LSN 值。

5.Redis 架构历史重试现在受到限制

Debezium 2.5 引入了一个新的配置选项 schema.history.internal.redis.max.attempts ,旨在限制连接到 Redis 数据库时不可用时的重试尝试次数,以前它只是永远重试。这个新选项默认为 10,但用户可以配置。

6.SQL Server 驱动程序更新

SQL Serer 2019 引入了指定特定于列的敏感度分类的功能,以便为敏感数据提供更好的可见性和保护。不幸的是,Debezium 2.4 及更早版本附带的当前驱动程序不支持此功能。 Debezium 2.5 引入了最新的 12.4.2 SQL Server 驱动程序,以便用户现在可以立即利用此功能。

7.Debezium 服务器 Kinesis 接收器改进

Debezium Server Kinesis 用户会很高兴地注意到 Debezium 2.5 的接收器适配器的可靠性得到了一些改进。现在,在适配器触发故障之前,Kinesis Sink 将自动重试失败记录的传送,最多尝试 5 次。这应该可以提高接收器适配器的传输可靠性,并有助于解决批量更改可能使接收器端点过载的情况。

你可能感兴趣的:(日常分享专栏,Debezium日常分享系列,Debezium,2.5.0.Alpha2,发布)