Kafka Streams -如何知道状态恢复何时完成

toiithl6  于 2023-03-07  发布在  Apache
关注(0)|答案(2)|浏览(151)

除了检查应用日志之外,是否可以通过编程方式检查状态恢复何时完成?例如,我希望在状态恢复完成时,在OpenShift中将Kafka Streams应用的就绪探测设置为“Alive”。

r7xajy2e

r7xajy2e1#

为此,您可以注册一个状态侦听器,侦听流线程发生的每个状态更改(已创建、重新平衡、pending_shutdown、正在运行......)。
下面是如何注册stateListener的示例代码

streams.setStateListener((KafkaStreams.State newState, KafkaStreams.State old)->{
                logger.info()
                        .message("Thread state has changed from {" + old.name() + "} to {" + newState.name() + "}")
                        .log();
                // here you can either register a metric or a global state variable that can be used in a health probe api.
            });
5sxhfpxr

5sxhfpxr2#

您可以使用KafkaStreams.setGlobalStateRestoreListner来设置StateRestoreListener,该StateRestoreListener在使用onRestoreEnd方法完成还原时提供通知。
让我知道你的情况如何。
比尔·HTH

相关问题