我已将我的kafka流实例与org.apache.kafka.streams.processor.StateRestoreListener接口的实现连接起来。我使用了处理器API来定义我的流,它有一个状态存储。流的工作基本上是从输入主题中读取数据,并将数据存储在状态存储中。
我想知道在什么情况下会调用StateRestoreListener。
当我第一次启动流时,它会被调用吗?
当我启动另一个实例时,它会被调用吗?
当我停止某个实例时,它会被调用吗?
并且在每种情况下。。什么方法可以调用?
当我第一次启动流时,它会被调用吗?
否,因为当您第一次启动时,状态存储为空,因此没有什么可恢复的。
当我启动另一个实例时,它会被调用吗?
将发生的部分状态迁移到新启动的实例。侦听器将仅在新实例上调用,而不在现有实例上调用。因为现有实例不需要恢复任何内容。
当我停止某个实例时,它会被调用吗?
是的,这与上面的情况类似。停止的实例的状态将迁移到另一个(或多个(仍在运行的实例,这些实例将恢复状态,从而调用侦听器。
并且在每种情况下。。什么方法可以调用?
这三个方法都将被调用。";"开始";以及";结束";回调一次,第三次回调在恢复期间定期报告进度。