Какими инструментами взаимодействовали с Kafka: UI или напрямую на VM
Что проверяют
Работали ли вы с Kafka руками и понимаете ли, что именно проверяете: сообщение ушло, пришло с нужным ключом и форматом, консьюмер его забрал. Следом обычно спрашивают, как вы смотрели лаг консьюмер-группы или как отправляли тестовое сообщение.
Как отвечать
Сильный ответ звучит как «и то и другое», с объяснением, когда что:
- UI: Kafka UI, AKHQ, Redpanda Console, Offset Explorer. Удобно искать сообщение по ключу или содержимому, смотреть заголовки, партиции, оффсеты и лаг групп, отправить сообщение из формы. Подходит для ручного тестирования и разбора инцидентов;
- CLI на ВМ или в контейнере брокера: скрипты из поставки Kafka.
kafka-topics.sh --bootstrap-server host:9092 --describe --topic orders,kafka-console-consumer.shс--from-beginning,kafka-console-producer.sh,kafka-consumer-groups.sh --describe --group billingдля лага; - kcat: одна утилита вместо набора скриптов, удобна в связке с
jq; - код: в автотестах клиентская библиотека вашего языка или Testcontainers с брокером, а не ручной UI.
Опишите свой реальный сценарий: например, вызывали API и проверяли, что в топике появилось событие с нужным ключом и полями, а сервис-потребитель его обработал и лаг группы вернулся к нулю. Если работали только через UI, скажите честно и покажите, что знаете, какими командами то же делается в консоли.
Где спотыкаются
Читают топик консолью с --group той же группы, что у реального сервиса. Начинается ребалансировка, часть сообщений уходит вашему консьюмеру и до сервиса не доходит.
Берут команды из старых инструкций с --zookeeper. У утилит этот флаг давно убран, а в Kafka 4.0 ZooKeeper удалён целиком, всё работает через --bootstrap-server.
Удивляются бинарному мусору в консоли. Сообщения в Avro или Protobuf нужно читать десериализатором со Schema Registry, в UI для этого подключают реестр схем.