繁体   English   中英

从Flink的kafka主题开始就开始消费

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM