如何在没有 shell 的情况下获取 Kafka 0.10.x 中的当前偏移量?

How to get current offset in Kafka 0.10.x without shell?

有什么方法可以获取Kafka 0中的当前偏移量10.x?我不想使用 shell 命令。

当我使用 API 的 consumer.endOffsets(...) 时,我可以获得最后的偏移量 (logSize)。但是 consumer.position(...) 没有得到当前的偏移量!

总而言之,我想获取一个分区中的当前偏移量、日志大小和滞后。

您可以使用 KafkaConsumer#committed() 获取最新提交的位置。因此,如果您禁用 auto-commit 并进行手动提交,您可以计算每次提交时的确切延迟。

另一方面,您处理的每条记录,通过 ConsumerRecord#offset() 提供其偏移量,因此,您还可以计算读取单个记录(对于记录的分区)后的延迟。