Apache kafka 从kafka流中调用的函数获取statestore数据

Apache kafka 从kafka流中调用的函数获取statestore数据,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,在Kafka Streams的处理器API中,我是否可以按如下方式将处理器上下文从init传递给其他函数,并使用进程中的状态存储返回上下文 public void initProcessor上下文上下文{ this.context=上下文; 字符串resourceName=config.properties; ClassLoader=Thread.currentThread.getContextClassLoader; 属性道具=新属性; tryInputStream resourceStrea

在Kafka Streams的处理器API中,我是否可以按如下方式将处理器上下文从init传递给其他函数,并使用进程中的状态存储返回上下文

public void initProcessor上下文上下文{ this.context=上下文; 字符串resourceName=config.properties; ClassLoader=Thread.currentThread.getContextClassLoader; 属性道具=新属性; tryInputStream resourceStream=loader.getResourceAsStreamresourceName{ props.loadresourceStream; } 卡奇奥例外{ e、 打印跟踪; } dataspliter.timerMessageSourceprops,context;//我可以这样传递context吗? this.context.schedule1000; //检索名为patient的键值存储 kvStore=KeyValueStore this.context.getStateStorepatient; //要获取被调用函数timerMessageSource填充的statestore值,因为要放入statestore的数据是在timerMessageSource中生成的 //有没有什么方法可以通过使用上下文或其他方式来实现 } ProcessorContext的使用受到一定限制,您不能在任意时间调用它提供的每个方法。因此,它取决于您如何使用它-一般来说,您可以按照自己的意愿传递它,它在处理器的整个活动时间内始终是同一个对象


如果我正确理解了您的问题,您可以注册一个标点,并在标点回调中使用dataSplitter,并希望修改存储。这是绝对可能的-您可以将存储放在类成员中,类似于您对上下文所做的操作,或者使用上下文对象在标点回调中获取存储。

谢谢@Matthias。想了解为什么我们选择标点符号而不是init或process。我的意思是,我们不能在init或进程本身中获取状态存储值吗?可以在init、进程或标点中获取状态存储。我以为你想在通过上下文注册标点符号时使用标点符号。时间表。。。