[英]Consuming from the beginning of a kafka topic with Flink
如何确定我总是从Flink的Kafka主题开始就开始消费?
对于作为Flink 1.0.2一部分的Kafka 0.9.x使用者而言,似乎不再是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
)
)
我认为您可以通过指定一个随机的group.id
来解决此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中没有初始偏移量时可用。
采用:
consumer.setStartFromEarliest();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.