получить количество неиспользованных сообщений Кафки в Java - PullRequest
0 голосов
/ 24 октября 2019

Нам хотелось бы узнать количество сообщений, которые еще не были использованы и подтверждены Kafka Consumer для данной темы Kafka.

Есть ли способ получить количество сообщений о непроработанных Kafka из данной темы? (В теме 10 разделов) на Java ??

Ответы [ 2 ]

3 голосов
/ 24 октября 2019
Потребители

kafka имеют метрику "задержки записи" для каждого раздела (введена в kip-92 ). Вы можете суммировать эти метрики для всех разделов вашей темы и получить показатель для неиспользованных сообщений

1 голос
/ 24 октября 2019

Существует еще один альтернативный подход

У Kafka Consumer есть API для получения конечной точки для каждого раздела темы

List partitions = new ArrayList<>();
        for (PartitionInfo p : parts) {
            partitions.add(new TopicPartition(topic, p.partition()));
        }
Map<TopicPartition, Long> offsets = consumer.endOffsets(partitions);

Для каждого раздела темы вы можете получить последнее зафиксированное смещение. Вы можетелегко получить неизрасходованное отставание, используя эти 2 числа

отставание = (конец смещения, последний совершенный)

for (TopicPartition tp : offsets.keySet()) {
            OffsetAndMetadata commitOffset = consumer.committed(new TopicPartition(tp.topic(), tp.partition()));
            Long lag = commitOffset == null ? offsets.get(tp) : offsets.get(tp) - commitOffset.offset();            
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...