确保在Kafka Connect中交付一次

时间:2019-05-14 13:39:27

标签: hadoop apache-kafka apache-kafka-connect

您知道这是可能的吗,如果可以,使用kafka与kafka连接以确保向HDFS完全交付一次的最佳方法是什么?

我知道Kafka connect会尝试在“'__consumer_offsets”中为其消费者组查找偏移量,但由于重复项不可接受,因此我需要进行其他检查

2 个答案:

答案 0 :(得分:0)

HDFS Connect已经声称可以通过使用HDFS中的预写日志来支持一次。重新启动连接时,它实际上会检查该日志,除非最近更改了逻辑,而不是偏移量主题

答案 1 :(得分:0)

当连接器将文件写入HDFS时,它首先写入临时文件,WAL进行重放,然后将temp重命名为最终文件。此最终文件的命名具有该文件中存在的偏移量。因此,当连接启动时,它会在HDFS上查找并找到最新的提交偏移量,这应保证只有一次交付。如果在hdfs中找不到偏移量,则它可以让使用者偏移重置策略。请查看https://github.com/confluentinc/kafka-connect-hdfs/blob/master/src/main/java/io/confluent/connect/hdfs/DataWriter.javahttps://github.com/confluentinc/kafka-connect-hdfs/blob/master/src/main/java/io/confluent/connect/hdfs/TopicPartitionWriter.java以了解更多信息