Функция утилиты bash для очистки темы kafka
путем манипуляции с интервалом retention выглядит следующим образом:
clearKafka() {
tname=$1 ;
kafka-topics.sh --zookeeper localhost:2181 --alter --topic $tname --config retention.ms=1000
sleep 25s;
kafka-console-consumer.sh --from-beginning --bootstrap-server localhost:9092 --property print.key=true --property print.value=false --property print.partition --topic $tname --timeout-ms 300 | tail -n 10|grep "Processed a total of"
kafka-topics.sh --zookeeper localhost:2181 --alter --topic $tname --config retention.ms=600000;
sleep 25s;
kafka-console-consumer.sh --from-beginning --bootstrap-server localhost:9092 --property print.key=true --property print.value=false --property print.partition --topic $tname --timeout-ms 300 | tail -n 10|grep "Processed a total of"
}
Это немного грязно (ПРЕДУПРЕЖДЕНИЕ ..), но работает на linux - обратите внимание на последнюю информацию, которая нашла 0 сообщений.
$ clearKafka airsmall
WARNING: Altering topic configuration from this script has been deprecated and may be removed in future releases.
Going forward, please use kafka-configs.sh for this functionality
Updated config for topic airsmall.
[2019-05-13 03:11:01,552] ERROR Error processing message, terminating consumer process: (kafka.tools.ConsoleConsumer$)
org.apache.kafka.common.errors.TimeoutException
Processed a total of 2000 messages
WARNING: Altering topic configuration from this script has been deprecated and may be removed in future releases.
Going forward, please use kafka-configs.sh for this functionality
Updated config for topic airsmall.
[2019-05-13 03:11:01,552] ERROR Error processing message, terminating consumer process: (kafka.tools.ConsoleConsumer$)
org.apache.kafka.common.errors.TimeoutException
Processed a total of 0 messages
Та же утилита на mac заканчивается отображением 2000 сообщений даже в самом конце.
Processed a total of 2000 messages
И на самом деле все еще показывает 2000 сообщений с этой командой даже через несколько минут. Так какое же дело на Mac для этого? Как очистить тему на Mac?