96SEO 2026-02-20 00:25 15
Oracle连接器的改变已删除的废弃配置属性默认的挖掘策略已更改Oracle

Ehcache事务缓冲实现Oracle离线RAC节点刷新改进Oracle扩展的最大字符串大小支持Oracle
PostgreSQL连接器的改变PostgreSQL复制槽创建超时支持PostgreSQL
PgVector数据类型转换解码PostgreSQL逻辑消息PostgreSQL隔离级别支持重新选择Reselect后处理器的改进
3.0中的所有变化讨论新功能并解释可能对您的升级过程产生任何影响的所有可能变化。
如往常一样我们建议您阅读发布说明以了解所有修复的错误、更新程序等信息。
核心Debezium的变化MariaDB连接器的变化MongoDB连接器的变化MySQL连接器的变化Oracle连接器的变化PostgreSQL连接器的变化SQL
Server的变化Spanner连接器的变化Vitess连接器的变化
此版本改变了构建和运行Debezium所需的Java要求。
此外此版本要求使用较新版本的Maven来从源代码构建Debezium。
所有Debezium连接器都需要Java
21的运行时基线。
如果您打算从源代码构建Debezium则所有Debezium项目都需要Java
21之前的Java版本从源代码构建Debezium则构建将失败并报告需要Java
21或更高版本。
请参见下表快速查看各组件所需的Maven和Java要求
2.4中增量快照信号有效载荷中的additional-condition字段已被废弃被新的additional-conditions属性取代允许按表指定条件。
在此版本中旧的additional-condition字段已被删除不再支持。
请确保更新可能引用了这个旧的废弃字段的脚本、工作流程或文档。
Debezium现在将开始跟踪基于每个关系表执行的单个创建、更新和删除操作的指标。
对于一些连接器如PostgreSQL和Oracle这些新的详细指标还会跟踪每个关系表执行的截断操作。
这在需要检测特定变更模式或者需要将详细信息应用于分析或可观察性堆栈的情况下非常有用因为这些详细信息对于识别问题非常有价值。
对于升级到Debezium
3的用户这些新的指标将自动捕获。
它们使用MapString,
Long的映射模式进行公开其中键是表名值是观察到的事件数量。
新的指标名称包括NumberOfCreateEventsSeenNumberOfDeleteEventsSeenNumberOfUpdateEventsSeen和NumberOfTruncateEventsSeen
3将其基线支持转移到MariaDB的最新的非滚动版本11.4.3上。
我们还密切关注MariaDB
2.2中Debezium引入了第一个基于sink的连接器并且我们很高兴地宣布作为Debezium
3的一部分我们还包含了另一个基于sink的连接器用于MongoDB。
与JDBC
sink关系连接器不同需要安装额外的插件才能使用它MongoDB
sink连接器与MongoDB源连接器捆绑在同一部分中。
因此如果您已经安装或使用MongoDB源连接器并且使用的是Debezium
sink连接器。
开始使用MongoDB的配置非常简单以下是一个示例
io.debezium.connector.mongodb.MongoDbSinkConnector,connection.string:
}connection.string和sink.database是必填的配置属性。
它们定义了连接到目标MongoDB数据库的详细信息以及更改将被写入的目标数据库的名称。
此外topics是Kafka
Connect的必填配置属性它描述了一个逗号分隔的正则表达式列表用于指定sink连接器将观察的主题。
9.0的首个创新版本。
我们很高兴地宣布我们已经测试和验证了MySQL
3.0及更高版本的兼容性和支持性。
如果您遇到任何问题请务必提交一个问题。
在关系数据库中最新添加的特性之一是引入了向量数据类型。
除了对MySQL
3还引入了对新的VECTOR(n)数据类型的支持该类型支持以二进制或列表格式的字符串表示的浮点值列表。
此外MySQL语法已更新以反映对新的MySQL
log.mining.transaction.retention.hours
被替换为log.mining.transaction.retention.mslog.mining.archive.destination.name
archive.destination.namelog.mining.archive.log.hours
archive.log.hours请确保在使用废弃的配置选项保留旧行为时更新您的Oracle连接器配置。
默认的log.mining.strategy值已更改为online_catalog。
由于绝大多数用户通常使用此策略并且它通常比redo_log_catalog策略表现更好所以我们认为在Debezium
3中进行了这个更改。
如果您的部署之前依赖于默认的redo_log_catalog策略您将需要在升级时在连接器配置中显式添加log.mining.strategy并指定值为redo_log_catalog。
3引入了基于Ehcache的新的Oracle连接器事务缓冲实现提供了事务处理和事件数据的堆外存储。
这个新的实现添加到了现有的Java堆、Infinispan嵌入式和Infinispan远程缓冲类型中。
要开始利用Ehcache实现必须将log.mining.buffer.type设置为ehcache。
默认情况下缓冲类型为memory以使用JVM的堆来获得最佳性能。
为了使Ehcache库成功启动必须提供一些额外的配置来显式配置缓存管理器维护的缓存。
这些新的配置选项包括
log.mining.buffer.ehcache.global.configlog.mining.buffer.ehcache.transactions.configlog.mining.buffer.ehcache.processedtransactions.configlog.mining.buffer.ehcache.schemachanges.configlog.mining.buffer.ehcache.events.config
Debezium使用XML创建Ehcache配置因此每个配置提供XML片段。
全局配置是可选的允许您提供关于持久化和其他Ehcache属性的详细信息但不包括指定cache或default-serializers标签这些标签是单独处理的。
其他的单独缓存配置用于提供cache配置标签的内部XML部分不包括key-type和value-type这些由Debezium直接管理。
ehcache,log.mining.buffer.ehcache.global.config:
directory\./data\/,log.mining.buffer.ehcache.transactions.config:
unit\B\10485760/disk/resources,log.mining.buffer.ehcache.processedtransactions.config:
unit\B\10485760/disk/resources,log.mining.buffer.ehcache.schemachanges.config:
unit\B\10485760/disk/resources,log.mining.buffer.ehcache.events.config:
}在这个示例中Ehcache将维护堆和堆外存储的缓存组合在任何时候都保持堆中最多256个条目并刷新到磁盘。
磁盘缓存将存储在相对路径./data中。
这意味着当使用基于磁盘的缓存时您需要一个可用的持久性存储卷。
RAC节点在离线状态下无法对重做日志进行任何写操作这三秒的延迟在节点保持离线状态时引入了不必要的延迟。
在Debezium
RAC节点存在活动连接但刷新SQL操作失败时才会强制执行三秒的延迟。
这意味着当数据库管理员将RAC节点离线进行维护时连接器不会引入任何延迟开销。
Oracle扩展字符串是一项功能允许将字符数据的传统4000字节限制提高到32K。
这通过对数据库进行升级将数据库参数max_string_size设置为EXTENDED来实现。
扩展字符串功能允许使用与4000字节或更小字符数据相同的SQL语法来处理高达32K的字符数据而无需强制使用基于CLOB的操作。
在Debezium
3中您现在可以使用Oracle连接器与使用扩展字符串的数据库并直接从事务日志中捕获更改。
由于扩展字符串在数据库级别上实际上是CLOB操作因此挖掘此类列类型需要将lob.enabled设置为true。
在某些情况下Oracle用户可能会定义表时将CLOB或BLOB字段定义为必需并使用EMPTY_BLOB()或EMPTY_CLOB()函数来定义默认值以便在字段未提供时使用。
在先前的版本中Debezium不会对这些特殊函数进行评估因此这些列将被视为可选而不是非可选的。
从Debezium
3开始当指定了EMPTY_BLOB()或EMPTY_CLOB()默认值时该字段将被视为非可选。
此外该字段将包含适当的默认值即空字节数组或空字符串。
当首次部署PostgreSQL连接器时其中一个最初的任务是在数据库中创建一个复制槽replication
slot如果该槽不存在。
复制槽对连接器的工作方式至关重要它有助于捕获和分发到Debezium的更改。
不幸的是某些数据库操作会阻塞复制槽的创建比如进行中的事务强制连接器无限期地等待事务结束。
对于短暂的事务这通常不是一个问题然而对于长时间运行的事务情况就完全不同了。
为了改善这种情况添加了一个新的内部选项internal.create.slot.command.timeout默认为90秒。
如果复制槽的创建在90秒内没有完成它将重试最多重试slot.max.retries次。
一旦重试次数用尽连接器将抛出一个不可恢复的错误。
pgvector扩展为PostgreSQL引入了向量搜索功能。
此扩展引入了三种数据类型vector、halfvec和sparsevec。
在Debezium
3中这三种数据类型将像任何其他数据类型一样进行流式传输。
每种数据类型基于以下语义映射进行发射
vector作为数字值的数组halfvec作为数字值的数组sparsevec作为一个结构体包含维度数量和索引到值的映射。
在启用了数据库中的pgvector扩展后不需要进行其他配置。
如果您在3.0.0.CR1之前使用了Debezium
3的预览版本模式名称已经进行了调整以更通用地支持多个数据库供应商。
如果要从之前的Debezium
PostgreSQL在实现Outbox模式时独特之处在于您可以通过使用pg_logical_emit_message将逻辑消息直接写入WAL而无需创建一个outbox表。
不幸的是这些数据随后以一系列字节的形式发送到Kafka这对于可能正在寻找结构化消息的消费者来说并不总是理想的。
Debezium
3引入了一个新的专门针对PostgreSQL的转换器称为DecodeLogicalDecodingMessageContent。
此转换器专门用于将pg_logical_emit_message事件字节转换为消费应用程序能够理解的结构化事件负载。
给定以下配置
io.debezium.connector.postgresql.transforms.DecodeLogicalDecodingMessageContent
}在应用转换之前使用pg_logical_emit_message编写的事件的值将为
eyJpZCI6IDEsICJpdGVtIjogIkRlYmV6aXVtIGluIEFjdGlvbiIsICJzdGF0dXMiOiAiRU5URVJFRCIsICJxdWFudGl0eSI6IDIsICJ0b3RhbFByaWNlIjogMzkuOTh9}
长期以来PostgreSQL对快照隔离级别的支持一直是一个改进的方向现在它已经实现了一个新的连接器配置属性snapshot.isolation.mode允许连接器在执行初始和临时阻塞快照步骤时控制使用的一致性。
有四个隔离级别串行化默认值可重复读、读已提交和读未提交。
可以在文档中找到有关这些隔离级别以及它们如何与PostgreSQL一起使用的详细信息。
ReselectPostProcessor是一个有用的工具用于处理包含TOAST列超大属性存储技术的变更事件的填充。
默认情况下当发现TOAST列并且它未被SQL操作改变时Debezium会用占位符填充这些字段表示未提供值但也未发生更改。
许多数据类型使用这种存储机制包括int/bigint数组。
通过Debezium
3这些int/bigint数组数据类型可以由后处理器重新选择以便始终填充这些字段即使它们在SQL操作中未发生更改。
Server的JMX信号和通知无法正确工作。
为了解决这个问题需要更改信号和通知MBean名称的命名以确保它们在每个任务中是唯一的。
sink存储库已从debezium-connector-jdbc迁移到debezium主存储库。
在Debezium
sink连接器后这使团队可以轻松地在我们的sink连接器之间共享公共契约。
未来如果要为JDBC
sink提出拉取请求请使用主Debezium存储库因为旧存储库已被存档只能进行只读操作。
sink使用一组缓冲区来提高写入目标数据库的吞吐量。
在某些情况下由于其他应用程序锁定了特定行或表这些缓冲区的刷新操作可能会遇到特定的异常。
为了改善用户体验添加了两个新的配置属性
重试功能默认启用最多尝试重试5次每次重试间隔1秒。
如果您希望禁用重试将flush.failure.max.retries设置为0即可禁用此功能。
sink适配器可能会无限期等待。
新的可配置超时已添加到sink适配器中当达到超时时强制适配器失败。
新选项debezium.sink.kafka.wait.message.delivery.timeout.ms的默认值为30秒。
如果默认值不足以满足您的需求请相应地进行调整。
sink适配器将所有更改发送到同一个单一流中。
虽然这在某些场景下可能很有用但它与其他代理系统不太匹配其他代理系统中每个表都会被流式传输到自己独特的主题或流中。
在Debezium
3中这个逻辑已经改变默认情况下每个表将被流式传输到自己独特的流中。
当设置debezium.sink.rabbitmqstream.stream时可以启用将所有更改流式传输到同一个流中的传统行为。
Json、JsonByteArray、CloudEvents、Avro、Protobuf、Binary
SimpleString。
虽然这些转换器通常能满足绝大多数用例的需求但并不罕见有人可能会有一些特定于他们环境的独特需求这些需求超出了这些选项。
在这个版本中新增了一个名为
的转换器选项它允许通过自定义的用户提供实现来扩展头部、键和值的转换器。
适配器现在将记录键进行日志记录。
这有助于了解具体哪个记录存在问题而不必要增加运行时的日志详细程度。
已经改进了对这种用例的处理现在可以优雅地处理这种没有错误的键空间。
连接器配置属性用于控制在重新分片操作后新分片的纪元是否从其父分片继承。
这个新的配置属性vitess.inherit.epoch默认为
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback