从Flink开始使用kafka主题

时间:2016-05-09 16:28:48

标签: scala apache-kafka apache-zookeeper apache-flink flink-streaming

如何确保我始终使用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
  )
)

2 个答案:

答案 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();