web-dev-qa-db-ja.com

Kafka Streamsの状態ストアを削除/クリアする方法は?

Kafka-streamsDSLの最後にカスタムのTransformer実装があり、永続的な変更ログKeyValueStoreがバインドされています。

数週間以来、私はストアにあまりにも多くのデータを入れてきました。これで、アプリケーションをロードするたびに、RAMが大量に消費されます。

ただし、アプリケーション自体は単なるプロトタイプであるため、ストアを完全にクリアしてもかまいません。

kafka.application.idstate-store-nameの名前を変更することもできますが、これは一時的な回避策です(対応するデータ/トピックは削除されません)。

どうすれば完全にパージできますか?

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

これ post 状態のリセットについては非常に興味深いです。

10
Alex Ott