Debezium日常分享系列之:临时阻塞快照Ad-hoc blocking snapshots

Debezium日常分享系列之:临时阻塞快照Ad-hoc blocking snapshots

一、认识临时阻塞快照

增量快照于大约两年前在 Debezium 1.6 中首次引入,并且在社区中仍然非常受欢迎,用于处理各种重新快照用例。然而,在某些用例中,读取事件与创建、更新和删除的交织性质可能不太理想,甚至不受某些消费者应用程序的支持。对于这些用例,Debezium 2.4 引入了临时阻塞快照。

临时阻塞快照的工作方式与临时增量快照的工作方式类似;然而,有一个主要区别。快照仍然是通过向 Debezium 发送信号来触发;然而,当连接器处理信号时,主要区别在于,在快照进程运行时,流传输被搁置。这意味着您不会收到一系列与创建、更新或删除事件交织在一起的读取事件。这也意味着我们将以与传统快照类似的方式处理快照,因此吞吐量通常应该高于增量快照。

请注意,临时阻塞快照会在执行快照时暂停事务日志的读取。这意味着在使用这种类型的临时快照模式时,传统快照对事务日志可用性的相同要求也适用。当流恢复时,如果所需的事务日志已被删除,连接器将引发错误并停止。

二、临时阻塞快照信号格式

启动临时阻塞快照的信号与其对应的临时增量快照非常相似。下面的信号显示了对具有条件的特定表进行快照的有效负载,但这使用新的阻塞快照而不是增量快照:

bash 复制代码
{
  "type": "execute-snapshot",
  "data": {
    "data-collections": ["public.my_table"],
    "type": "blocking", 
    "additional-condition": "last_update_date >= '2023-01-01'"
  }
}

使用 blocking 而不是 INCRMENTAL 区分了两种临时快照模式。

三、临时阻塞快照效果

执行临时阻塞快照日志输出如下图所示:

相关推荐
最笨的羊羊1 个月前
Debezium日常分享系列之:Debezium Engine
debezium日常分享系列·debezium engine
最笨的羊羊1 个月前
Debezium日常分享系列之:Debezium3版本Debezium connector for JDBC
jdbc·debezium日常分享系列·debezium·connector·debezium3版本
最笨的羊羊1 个月前
Debezium日常分享系列之:使用 Outbox 模式实现可靠的微服务数据交换
微服务·debezium日常分享系列·使用 outbox 模式·实现可靠的微服务数据交换
最笨的羊羊3 个月前
Debezium日常分享系列之:将容器镜像移至 quay.io
debezium日常分享系列·将容器镜像移至 quay.io
最笨的羊羊4 个月前
Debezium日常分享系列之:Debezium 3.0.0.Beta发布
debezium日常分享系列·debezium·3.0.0.beta发布
最笨的羊羊9 个月前
Debezium日常分享系列之:Debezium2.5稳定版本之Oracle连接器的工作原理
debezium日常分享系列·debezium2.5稳定版本·oracle连接器的工作原理
最笨的羊羊9 个月前
Debezium日常分享系列之:Debezium2.5稳定版本之MySQL连接器配置示例和Connector参数详解
debezium日常分享系列·debezium2.5稳定版本·mysql连接器配置示例·connector参数详解
最笨的羊羊9 个月前
Debezium日常分享系列之:Debezium2.5稳定版本之处理常见问题
debezium日常分享系列·debezium2.5稳定版本·处理常见问题
最笨的羊羊9 个月前
Debezium日常分享系列之:Debezium2.5稳定版本之数据类型映射
debezium日常分享系列·debezium2.5·稳定版本·数据类型映射
最笨的羊羊9 个月前
Debezium日常分享系列之:Debezium2.5稳定版本之Mysql连接器的工作原理
debezium日常分享系列·debezium2.5稳定版本·mysql连接器的工作原理