Подсчет сообщений в темах Кафки - PullRequest
1 голос
/ 21 апреля 2020

Я пытаюсь понять, как отслеживать прием сообщений с помощью Kafka.

Рабочий процесс, которому мы сейчас следуем, - это удаление всех сообщений в темах, а затем мы повторно принимаем изменения кода. Мне нужно знать, насколько успешны эти изменения кода. В текущем состоянии я использую Kafka Tool и вручную обновляю Общее количество сообщений и сохраняю свои результаты в csv, который, как я знаю, не является устойчивым в долгосрочной перспективе.

Каковы ваши рекомендации по автоматизации выборки подсчетов сообщения в Кафке Темы? В идеале я хотел бы поразить топи c по частоте за минутой и получить счетчик, а также windows времени, например, 1 день и c.

* Я не могу использовать K SQL из-за проблем со стабильностью, которые у нас возникают.

1 Ответ

0 голосов
/ 21 апреля 2020

Подсчет сообщений также зависит от сжатия журнала.


Например, вы можете наблюдать «странные результаты», когда сжатие журнала эффективно для одной топи c. Допустим, у вас есть топи c myTopic, в общей сложности 100 сообщений. Предполагая, что у вас есть политика сжатия журналов, которая вступает в силу сейчас, счет может быть уменьшен до 20 сообщений, поскольку старые сообщения были сжаты.


Чтобы получить количество сообщений на раздел, вы можете использовать следующую команду:

kafka-run-class kafka.tools.GetOffsetShell \
  --broker-list localhost:9092 \
  --topic myTopic 

, и результат будет примерно таким, как показано ниже (при условии myTopic имеет 3 раздела):

myTopic:2:34 
myTopic:1:33 
myTopic:0:33

В качестве альтернативы, для общей суммы вы можете использовать это:

./bin/kafka-run-class.sh kafka.tools.GetOffsetShell \
  --broker-list localhost:2181 \
  --topic myTopic \
  --time -1 \
  --offsets 1 \
  | awk -F  ":" '{sum += $3} END {print sum}'

Вы также можете найти Инструменты мониторинга Kafka полезными в данном контексте. Точнее, CMAK (он же kafka-manager) имеет один раздел в показателях о Суммированные недавние смещения

...