交付)
Debezium系列之:精確一次(Exactly-once)交付概述已知問題與注意事項(xiàng)配置前提條件源連接器配置概述Debezium 提供了“至少一次”(at-least-once)交付保證。這意味著不會(huì)遺漏任何變更;然而,在某些情況下,同一條記錄可能會(huì)被多次交付。在特定場(chǎng)景下,這些重復(fù)記錄可能會(huì)引發(fā)問題,因此可能需要“精確一次”語(yǔ)義?!熬_一次”交付確保每項(xiàng)變更都被交付,并且在變更流中僅出現(xiàn)一次。這是一項(xiàng)比“至少一次”交付嚴(yán)格得多的要求。目前,Debezium 尚未實(shí)現(xiàn)用于強(qiáng)制執(zhí)行“精確一次”語(yǔ)義的內(nèi)部去重層。不過(guò),當(dāng) Debezium 作為源連接器(source connector)部署在 Kafka Connect 框架中時(shí),它可以利用 Kafka Connect 對(duì)“精確一次”交付的支持。Kafka Connect 對(duì)源連接器“精確一次”交付的支持Kafka Connect 在 KIP-618 中引入了對(duì)源連接器“精確一次”交付的支持。該功能構(gòu)建于 Kafka 的事務(wù)支持以及 KIP-98 引入的“精確一次”交付機(jī)制之上。已知問題與注意事項(xiàng)盡管 Kafka 和 Kafka Connect 已經(jīng)支持“精確一次”交付有一段時(shí)間了,但其實(shí)現(xiàn)是否完全正確,或者是否存在違反“精確一次”語(yǔ)義的邊緣情況,目前尚不明確。迄今為止,尚無(wú)針對(duì)近期 Kafka 版本中事務(wù)和“精確一次”實(shí)現(xiàn)正確性的全面研究。然而,兩份 Jepsen 報(bào)告(分別針對(duì) Redpanda 和 Bufstream)指出了 Kafka 協(xié)議及其實(shí)現(xiàn)中潛在的問題。這些報(bào)告引發(fā)了對(duì)正確性的擔(dān)憂,特別是在 Bufstream 的案例中。