我目前在我的Kafka消费者中有这样一些代码:
KafkaStream<byte[], byte[]> stream = consumerMap.get(topic).get(0);
ConsumerIterator<byte[], byte[]> it = stream.iterator();
while(it.hasNext()){
String receivedData = new String(it.next().message());
// do some processing
}
收到每一条信息都很有效。现在我想跳过一些消息,因为我只想要一个消息的示例。我不想接收它们,因为我不想浪费带宽。例如,我想要如下所示:
KafkaStream<byte[], byte[]> stream = consumerMap.get(topic).get(0);
ConsumerIterator<byte[], byte[]> it = stream.iterator();
while(it.hasNext()){
if(sample){
String receivedData = new String(it.next().message());
// do some processing
} else {
it.skip(); // does not use bandwidth to receive message
}
}
在这种情况下 it.skip()
应该简单地跳过消息,而不是占用带宽通过网络传输。我相信答案与推进偏移有关,但我似乎找不到任何具体的函数来实现这一点。
暂无答案!
目前还没有任何答案,快来回答吧!