开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC消费kafka停止后,使用sp启动,有的拿到的偏移量是-1,导致中间丢数据?

Flink CDC消费kafka停止后,使用sp启动,15个分区都有数据,但是有的拿到的偏移量是-1,导致中间丢数据?image.png

展开
收起
真的很搞笑 2023-10-02 08:40:46 113 0
1 条回答
写回答
取消 提交回答
  • 存在即是合理

    当Flink CDC消费Kafka停止后,使用sp启动时,如果某些分区的偏移量为-1,则表示该分区没有可用的数据。这可能是由于在停止Flink CDC消费Kafka时未正确提交偏移量或在重新启动时未正确重置偏移量所致。

    要解决这个问题,可以尝试以下思路:

    1. 检查Kafka消费者组是否已正确提交了偏移量。可以使用Kafka命令行工具或其他监控工具来查看消费者组的当前偏移量。

    2. 如果发现某些分区的偏移量为-1,则可以尝试手动设置这些分区的偏移量。可以使用Flink CDC提供的setStartupMode方法来指定启动模式为“latest”,这将使Flink CDC从最新的偏移量开始消费数据。例如:

      Properties properties = new Properties();
      properties.setProperty("bootstrap.servers", "localhost:9092");
      properties.setProperty("group.id", "test");
      properties.setProperty("enable.auto.commit", "false");
      properties.setProperty("auto.offset.reset", "earliest");
      FlinkKafkaConsumer<String> consumer = new FlinkKafkaConsumer<>(
              "test_topic", new SimpleStringSchema(), properties);
      DataStream<String> stream = env.addSource(consumer);
      stream.setStartupMode(StartupMode.LATEST);
      
    3. 如果仍然无法解决问题,则可能需要重新部署Flink CDC应用程序并确保正确地提交和重置偏移量。

    2023-10-23 15:26:34
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
    MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
    消息队列kafka介绍 立即下载