(используя getOffsetsByTimes) должно дать мне количество сообщений, написанных за это конкретное время?
В Кафка: полное руководство упоминается, что getOffsetsByTime
не основано на сообщениях, это файл сегмента . Это означает, что поиск по временному индексу не будет считываться в файл сегмента, скорее он получит первый сегмент, содержащий интересующее вас время. (Возможно, это изменилось в новых выпусках Kafka с момента выхода книги)
Если вам не нужна точность, это должно быть хорошо. Обратите внимание, что сжатые темы не имеют последовательно упорядоченных смещений друг за другом, поэтому простой abs(offset@time2 - offset@time1)
не будет работать для «общего количества существующих сообщений в теме».
В противном случае брокеры предоставляют множество метрик JMX, таких как количество входных байтов и скорость передачи сообщений, которые можно, например, объединять и отображать с течением времени, используя Grafana.