ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Debezium系列之:精确一次(Exactly-once)交付

Debezium系列之:精确一次(Exactly-once)交付 Debezium系列之:精确一次(Exactly-once)交付概述已知问题与注意事项配置前提条件源连接器配置概述Debezium 提供了“至少一次”(at-least-once)交付保证。这意味着不会遗漏任何变更;然而,在某些情况下,同一条记录可能会被多次交付。在特定场景下,这些重复记录可能会引发问题,因此可能需要“精确一次”语义。“精确一次”交付确保每项变更都被交付,并且在变更流中仅出现一次。这是一项比“至少一次”交付严格得多的要求。目前,Debezium 尚未实现用于强制执行“精确一次”语义的内部去重层。不过,当 Debezium 作为源连接器(source connector)部署在 Kafka Connect 框架中时,它可以利用 Kafka Connect 对“精确一次”交付的支持。Kafka Connect 对源连接器“精确一次”交付的支持Kafka Connect 在 KIP-618 中引入了对源连接器“精确一次”交付的支持。该功能构建于 Kafka 的事务支持以及 KIP-98 引入的“精确一次”交付机制之上。已知问题与注意事项尽管 Kafka 和 Kafka Connect 已经支持“精确一次”交付有一段时间了,但其实现是否完全正确,或者是否存在违反“精确一次”语义的边缘情况,目前尚不明确。迄今为止,尚无针对近期 Kafka 版本中事务和“精确一次”实现正确性的全面研究。然而,两份 Jepsen 报告(分别针对 Redpanda 和 Bufstream)指出了 Kafka 协议及其实现中潜在的问题。这些报告引发了对正确性的担忧,特别是在 Bufstream 的案例中。
返回列表