如何让javakafka消费者跳过消息?

7y4bm7vi  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(372)

我目前在我的Kafka消费者中有这样一些代码:

  1. KafkaStream<byte[], byte[]> stream = consumerMap.get(topic).get(0);
  2. ConsumerIterator<byte[], byte[]> it = stream.iterator();
  3. while(it.hasNext()){
  4. String receivedData = new String(it.next().message());
  5. // do some processing
  6. }

收到每一条信息都很有效。现在我想跳过一些消息,因为我只想要一个消息的示例。我不想接收它们,因为我不想浪费带宽。例如,我想要如下所示:

  1. KafkaStream<byte[], byte[]> stream = consumerMap.get(topic).get(0);
  2. ConsumerIterator<byte[], byte[]> it = stream.iterator();
  3. while(it.hasNext()){
  4. if(sample){
  5. String receivedData = new String(it.next().message());
  6. // do some processing
  7. } else {
  8. it.skip(); // does not use bandwidth to receive message
  9. }
  10. }

在这种情况下 it.skip() 应该简单地跳过消息,而不是占用带宽通过网络传输。我相信答案与推进偏移有关,但我似乎找不到任何具体的函数来实现这一点。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题