如何让Java kafka使用者跳过邮件?

时间:2016-06-18 06:30:02

标签: java apache-kafka

我目前在我的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()应该只是跳过消息,而不是占用带宽来实际通过网络传输它。我相信答案与推进补偿有关,但我似乎找不到任何具体的功能。

0 个答案:

没有答案