kafka调用seek方法后调用subscribe方法报错

在使用kafka的时候,需要自己手动设置offset,于是在subscribe后调用seek方法,程序直接抛出异常:No current assignment for partition。通过搜索引擎搜了下,很多说是由于同一个 groupID 在同一时刻多次消费同一个 topic,引发 offset 记录问题。但在这里很明显不是。

 

seek正确的调用姿势应该是在调用subscribe的时候,添加一个回调函数:

consumer.subscribe(Arrays.asList(topic), new ConsumerRebalanceListener() {
    @Override
    public void onPartitionsRevoked(Collection collection) {
        
    }

    @Override
    public void onPartitionsAssigned(Collection collection) {
        consumer.seek(collection, 100);// consumer.seek(new TopicPartition("topic", 0), 100);
    }
});

 

你可能感兴趣的:(后端)