首页 > 解决方案 > 使用 KafkaListener 时,如何检查主题消息是否已读完?

问题描述

使用@KafkaListener 时,如何检查主题消息是否已读完?

标签: spring-bootapache-kafkaspring-kafka

解决方案


请参阅有关在没有更多记录可读取时获取事件通知的答案。

您可以Consumer在事件中使用 获取当前的position(), 和endOffsets(); 下面显示了如何获得结束偏移:

@EventListener
void listen(ListenerContainerIdleEvent event) {
    System.out.println(event);
    try {
        System.out.println(event.getConsumer().assignment());
        System.out.println(event.getConsumer().endOffsets(event.getConsumer().assignment(), Duration.ofSeconds(5)));
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

推荐阅读