Kafka CLI команды
Вводная часть
Здесь описаны некоторые bash-команды Kafka CLI для манипуляции с топиками и прочими сущностями Kafka. Все нижеописанные команды необходимо выполнять внутри pod-а Кафки. Если существуют несколько инстанции pod-ов Кафки можно выполнить в любой из инстанции (только для Топиков)
Команды
Топики
Вывести список топиков в кластере Kafka.
Старая версия: kafka-topics.sh --list --zookeeper {название контейнера зукипера}:{порт зукипера}
Новая версия: kafka-topics.sh --list --bootstrap-server localhost:9092
Вывести детали конкретного Топика
Старая версия: kafka-topics.sh --describe --zookeeper {название контейнера зукипера}:{порт зукипера} --topic {название топика}
Новая версия: kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic {название топика}
Добавить retention в Топик
Старая версия: kafka-topics.sh --zookeeper {название контейнера зукипера}:{порт зукипера} --alter --topic {название топика} --config retention.ms={время в миллисекундах}
Новая версия: kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name {название топика} --alter --add-config retention.ms={время в миллисекундах}
Удаление топика (Дважды подумайте!)
Старая версия: kafka-topics.sh --delete --zookeeper {название контейнера зукипера}:{порт зукипера} --topic {название топика}
Новая версия: kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic {название топика}
Примечание: использовать данную команду крайне не рекомендуется. Удаление топика это последнее средство для устранения ошибок связанных с топиками. Также стоит отметить, что удалять лучше из GUI KafDrop-а на странице нужного Топика (красная кнопка "Delete topic")
Примечание 2: при удалении топика удостоверьтесь, что в Кафку не поступают и из Кафки не потребляются никакие сообщения, иными словами, нужно отключить (потушить) все pod-ы Java-приложений, так как в них реализована логика Producer
s и Consumer
s. Только после этого можно удалить топик
Потенциальные проблемы
Если при исполнении команды вышла ошибка "Address already on use", то необходимо обнулить переменные окружения "JMX_PORT" и/или "KAFKA_OPTS" (не забудьте вернуть обратно)