Это определенно не способ сделать это, и, вероятно, это должно быть обработано политикой очистки, но это не главное. Давайте представим, что файлы в log.dirs были удалены, каковы последствия?
Брокер рухнет?
Смещение начнется с 0 после перезапуска службы?
Нужно ли что-то делать, чтобы исправить?
Если вы удалите файлы из log.dirs
, данные будут удалены, но тема останется в метаданных zookeeper. Брокер не рухнет. Как только вы перезапустите брокеров, он прочитает тему как пустую, и вы сможете создавать новые данные.
Если вы также удалите тему из метаданных zookeeper, она будет удалена из брокера.
Чтобы проверить смещения, вы можете использовать следующую команду:
// Before deleting the log.dirs directory for topic 'test1'
kafka_2.12-1.1.1 % bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test1
test1:0:6
// After deleting the directory and restarting the broker
kafka_2.12-1.1.1 % bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test1
test1:0:0
Да, и вы можете проверить смещение с помощью команды GetOffsetShell
. Добавлено в ответ
На самом деле это будет зависеть от того, сколько брокеров у вас есть в вашем кластере и от скольких из них вы одновременно удаляете файлы. К счастью, если вы удалите файлы из одного брокера в кластере из 3 брокеров и задали коэффициент репликации 3 для своих тем, вы ничего не потеряете, и файлы будут воссозданы на том брокере, где вы их удалили.
В этом случае я использую одного брокера, спасибо за понимание
после перезапуска брокера он должен начинаться со смещения с 0, верно?