Debezium 博客
Debezium 的聊天或邮件列表中不时会出现一个问题:如何确保 Debezium 生成的记录恰好一次(exactly-once)交付。到目前为止,Debezium 只支持至少一次(at-least-once)交付。这意味着 Debezium 保证每个变更都会被交付,不会丢失或跳过任何变更事件。然而,在发生故障、重启或数据库连接中断的情况下,同一个事件可能会被交付多次。典型的情况是事件被交付两次——一次在故障/重启之前,第二次在之后。恰好一次交付(或语义)提供了更强的保证——每个消息都会被交付,同时不会有任何重复,每个消息都只会被交付一次。到目前为止,我们的答案是,如果用户需要恰好一次交付,他们必须自己实现去重系统。然而,随着 Kafka Connect 对恰好一次交付的支持,看来我们只需稍作配置更改,即可为 Debezium 连接器开箱即用地提供恰好一次交付。