JavaDoc 在 Kafka 1.0.1 中对 Processor.close(( 的描述说:
注意:不要关闭任何流托管资源,如 StateStores。 在这里,因为它们由图书馆管理。
此外,StateStore.close(( 的 JavaDoc 描述说:
用户只需要实现这个函数,但永远不需要显式调用这个 api,因为它会在必要时被库自动调用
但是我在文档中找到了一个示例,其中状态存储在该方法中显式关闭:
@Override
public void close() {
// close the key-value store
kvStore.close();
}
所以,我有点迷茫。我应该关闭Processor
内的国有商店吗?
不,您不应该关闭商店。
示例代码片段错误。感谢您指出。我打开了一个 PR 来修复它:https://github.com/apache/kafka/pull/4667