【问题标题】:What happens to the Kafka state store when you use the application reset tool?使用应用程序重置工具时,Kafka 状态存储会发生什么情况?
【发布时间】:2020-02-25 19:38:46
【问题描述】:

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

文件内容如下: “内部主题:删除内部主题(这会自动删除任何已提交的偏移量)” (内部主题在执行时由 Kafka Streams 应用程序内部使用,例如状态存储的更改日志主题)

这是否意味着我失去了状态存储/RocksDB 的状态,就像它在 T-n 时一样?

例如,假设我在该时间戳处理状态存储上的“会话窗口”。在应用程序重置期间,我似乎会丢失该窗口中的所有现有数据。

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

【问题讨论】:

    标签: apache-kafka apache-kafka-streams


    【解决方案1】:

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

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

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

    唯一的“解决方法”可能是不使用其余工具,而是使用bin/kafka-consumer-groups.sh 仅修改输入主题偏移量。这样您就可以保留变更日志主题和本地状态存储。但是,当您重新启动应用程序时,状态当然会处于它的最后一个状态。不确定这是否可以接受。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多