根据时间戳检索kafka主题中的偏移量

时间:2019-06-27 04:25:36

标签: java apache-kafka kafka-consumer-api

我试图根据时间戳获取偏移量,但是当我运行我的代码时,它在这里抛出了空指针错误“ Long seekOffset = outOffsets.get(partition).offset();”。因为特定的时间没有偏移,所以我的问题是如何在特定的时间戳上获取最接近的偏移

下面我尝试过的代码,

select DISTINCT LocationCode, [Description] 
From @TableA a inner join @TableB b on a.LocationCode = b.Code

任何帮助将不胜感激!预先感谢

1 个答案:

答案 0 :(得分:0)

方法offsetsForTimes返回时间戳大于或等于目标时间戳的第一条消息的偏移量。如果为null,则没有此类消息。在这种情况下,只需将消费者放到最后。

for (TopicPartition partition : partitions) {
          OffsetAndTimestamp seekOffset = outOffsets.get(partition);
          if(seekOffset!=null){
             consumer.seek(partition, seekOffset.offset()); 
          }else{
             consumer.seekToEnd(Collections.singleton(partition));
          }
}