根据docs
Both Kafka and the Kafka connector are fault-tolerant.
Messages are neither duplicated nor silently dropped.
Messages are delivered exactly once, or an error message will be generated
我们在SF 2中具有相同的RECORD_METADATA记录:
{
"CreateTime": 1596445576884,
"key": "c�f4��H�h\u000bQ1`��\u0005*�X_a�q.",
"offset": 319944,
"partition": 20,
"topic": "answers.v6.dwh-interaction-event"
}
我们的主题密钥是Protobuf记录,但是我认为这应该不是问题。
答案 0 :(得分:1)
如果重复的消息来自该主题,那么我们在元数据记录中是否会有不同的分区偏移对?
是的,如果两次生成,则消息的偏移量会不同。
仅一次是一个复杂的主题,一次精确消费的实现需要特定于目的地的过程。此blog covers the two failure modes which need to handled仅一次成功实施。
特别是:
我只是粗略地检查了连接器,但是based on this comment我认为A是在接收器中处理的。
它可以在其他地方处理,但是要处理B,我希望processedOffset instance variable会在开始时以目标位置中找到的最高偏移量填充。
通常,即使存在保证,我认为最好也要计划重复。正如@MikeWalton建议的那样,也有可能在生产者端生成重复项,并且Snowflake提供了用于合并表的强大工具。