Чтобы удалить все сообщения в определенной теме, вы можете запустить kafka-delete-records.sh
Например, у меня есть тема под названием test
, которая имеет 4 partitions
.
Создайте файл Json
, например j.json
:
{
"partitions": [
{
"topic": "test",
"partition": 0,
"offset": -1
}, {
"topic": "test",
"partition": 1,
"offset": -1
}, {
"topic": "test",
"partition": 2,
"offset": -1
}, {
"topic": "test",
"partition": 3,
"offset": -1
}
],
"version": 1
}
Теперь удалите все сообщения этой командой:
/opt/kafka/confluent-4.1.1/bin/kafdelete-records --bootstrap-server 192.168.XX.XX:9092 --offset-json-file j.json
После выполнения команды будет отображаться это сообщение
Records delete operation completed:
partition: test-0 low_watermark: 7
partition: test-1 low_watermark: 7
partition: test-2 low_watermark: 7
partition: test-3 low_watermark: 7
если вы хотите удалить одну тему, вы можете использовать kafka-topics
:
например, я хочу удалить test
тему:
/opt/kafka/confluent-4.0.0/bin/kafka-topics --zookeeper 109.XXX.XX.XX:2181 --delete --topic test
Вам не нужно перезапускать Kafka