FlinkKafkaConsumer082 auto.offset.reset 设置不起作用?



我有一个Flink流媒体程序,它从Kafka的主题中读取数据。在程序中,auto.offset.reset设置为"最小"。当在IDE/InIntellij IDEA中进行测试时,程序总是可以从主题的开头读取数据。然后我建立了一个flink/kafka集群,并将一些数据生成到kafka主题中。我第一次运行流作业时,它可以从主题的开头读取数据。但在那之后,我停止了流媒体作业并再次运行它,它将不会读取主题开头的数据。如何使程序始终从主题的开头读取数据?

    Properties properties = new Properties();
    properties.put("bootstrap.servers", kafkaServers);
    properties.put("zookeeper.connect", zkConStr);
    properties.put("group.id", group);
    properties.put("topic", topics);
    properties.put("auto.offset.reset", offset);
    DataStream<String> stream = env
            .addSource(new FlinkKafkaConsumer082<String>(topics, new SimpleStringSchema(), properties));

如果您想始终从头开始读取,则需要在流上下文中禁用检查点。

同时在消费者属性层面禁用它:

enable.auto.commit=false或auto.commit.enable=false(取决于卡夫卡版本)

另一种方式:您可以为故障转移保留ckeckpointing,但在需要从头开始读取时生成新的group.id(只是有时清理zookeeper)

相关内容

  • 没有找到相关文章