У нас есть 3-узловой кластер Kafka с коэффициентом репликации 3 и сроком хранения журналов по умолчанию 4 дня. Мы включили автоматическое создание тем, и оно будет создавать темы для каждой из наших задач. Когда задача завершена, нам не нужно создавать для нее тему. Теперь у нас есть 2000 неиспользуемых тем в Kafka, можем ли мы выполнить массовое удаление этих 2000 тем без выключения нашего кластера? Влияет ли массовое удаление тем на производительность нашего кластера? Если да, то как безопасно удалить ненужные темы без выключения кластера?
Взгляните на скрипт kafka-themes из папки установки:
Поместите команду list в список (чтобы позже вы могли использовать ее на своем любимом языке)
список тем
bin / kafka-topics.sh --zookeeper localhost: 2181 --list
Для каждой темы из приведенного выше списка выполните команду удаления:
удалить тему
bin / kafka-topics.sh --zookeeper localhost: 2181 --delete --topic mytopic
Да, производительность будет зависеть от:
Сколько сообщений у вас в теме и в целом
Насколько велик размер сообщения
Пожалуйста, будьте осторожны и удаляйте не более пары из них за раз, затем проверьте, завершил ли кластер операции удаления после этого :)