当您使用应用程序重置工具时,Kafka state store 会发生什么情况?

What happens to the Kafka state store when you use the application reset tool?

当您 运行 Kafka 流应用程序重置工具将应用程序重置为特定时间戳(比如 T-n)时,您的状态存储会发生什么情况?

文件内容如下: "Internal topics: Delete the internal topic (this automatically deletes any committed offsets)" (内部主题由 Kafka Streams 应用程序在执行时在内部使用,例如状态存储的更改日志主题)

这是否意味着我失去了我在 T-n 时的状态 store/RocksDB?

例如,假设我在该时间戳处在状态存储上处理 "Session Window"。看来我会在应用程序重置期间丢失 window 中的所有现有数据。

是否有可能在重置应用程序时保留会话 Window 的状态? 换句话说,有没有办法在应用程序重置期间保留状态存储或 RocksDB(在 T-n)的状态?

rest 工具本身不会触及本地状态存储,但是,它会删除相应的更新日志主题。所以是的,你实际上失去了你的状态。

因此,为了让您的本地状态与变更日志保持同步,您实际上也应该删除本地状态,并从一个空状态开始:https://docs.confluent.io/current/streams/developer-guide/app-reset-tool.html#step-2-reset-the-local-environments-of-your-application-instances

目前无法将状态也重置为特定点 atm。

唯一的 "workaround" 可能是不使用 rest 工具 bin/kafka-consumer-groups.sh 只修改输入主题偏移量。这样您就可以保留变更日志主题和本地状态存储。但是,当您重新启动应用程序时,状态当然会处于上次状态。不确定这是否可以接受。