Kafka Streams - удалить / очистить хранилище состояний
У меня есть обычай Transformer
Реализация в конце моего DSL Кафка-потоков, с постоянным журналом изменений KeyValueStore
связаны с этим.
Уже несколько недель я кладу в магазин слишком много данных. Теперь, когда я загружаю приложение, оно потребляет слишком много оперативной памяти.
Тем не менее, само приложение является всего лишь прототипом, поэтому я не прочь полностью очистить магазин.
Я мог бы переименовать kafka.application.id
и state-store-name
но это временный обходной путь (и соответствующие данные / темы не будут удалены).
Как мне полностью его очистить?
1 ответ
Документация Confluent рекомендует либо использовать KafkaStreams.cleanUp(), либо вручную удалять каталоги в /var/lib/kafka-streams/<application.id>
(параметр конфигурации state.dir
).
Вам также необходимо сбросить все темы, используемые приложением, с помощью специального инструмента сброса - bin/kafka-streams-application-reset
:
bin/kafka-streams-application-reset --application-id my-streams-app \
--input-topics my-input-topic \
--intermediate-topics rekeyed-topic
Этот пост о восстановлении состояния очень интересен.