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

Этот пост о восстановлении состояния очень интересен.

Другие вопросы по тегам