如何确保我始终使用Flink从Kafka主题的开头消费?
使用属于Flink 1.0.2的Kafka 0.9.x consumer,它似乎不再是Kafka而是Flink来控制偏移量:
Flink在内部将偏移量作为其中的一部分进行快照 分布式检查站。承诺给Kafka / ZooKeeper的抵消 只是为了让外部的进步观点与Flink同步 进展的看法。这样,监控和其他工作可以得到一个 查看Flink Kafka消费者在多大程度上消耗了一个主题。
这是我得到了多远,但我的Flink程序始终从它停止的地方开始,并且不会在配置指示它时返回到开头:
val props = new Properties()
props.setProperty("bootstrap.servers", "localhost:9092");
props.setProperty("group.id", "myflinkservice")
props.setProperty("auto.offset.reset", "earliest")
val incomingData = env.addSource(
new FlinkKafkaConsumer09[IncomingDataRecord](
"my.topic.name",
new IncomingDataSchema,
props
)
)
答案 0 :(得分:0)
我认为您可以通过指定随机group.id
:
val props = new Properties()
props.setProperty("bootstrap.servers", "localhost:9092");
props.setProperty("group.id", s"myflinkservice_${UUID.randomUUID}")
props.setProperty("auto.offset.reset", "smallest") // "smallest", not "earliest"
auto.offset.reset
仅在ZooKeeper中没有可用的初始偏移量时才有效。
答案 1 :(得分:0)
使用:
consumer.setStartFromEarliest();