小弟近日用kafka测试传输数据设置的单消费者,不料消费者头天晚上就挂掉了 ,重启消费者,因为auto.offset.reset 默认为latest,所以消费者从昨天晚上的数据接着消费,因为差了一晚上了,消费者一时半会追不上生产者的步伐,而我又需要实时展示数据,且又不能每次重启消费者重新赋予group.id。所以需要手动修改偏移量到最新。

最后通过以下代码解决问题

  

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test");
…………
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);

TopicPartition partition0 = new TopicPartition("topicName", 0);


consumer.assign(Arrays.asList(partition0,partition1,partition2));

// consumer.seek(partition0, 220);
consumer.seekToEnd(Arrays.asList(partition0));

  
}

解决!

参考了三度微凉的博客:https://blog.csdn.net/yu280265067/article/details/69390094

转载于:https://www.cnblogs.com/cctvyuzhou/p/9013336.html

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐