我知道我们可以在kafka流中为有状态操作配置一个state.dir。状态是实例的本地状态。这样我们就可以快速查找。
这种方法的一个问题是,如果应用程序在容器化环境中运行,那么一旦重新启动/重新部署应用程序,状态就会丢失。一种解决方案是将state.dir配置为外部(网络附加)目录。donwside是键查找速度较慢,但好处是状态被保存在容器化环境之外,因此即使在重新启动容器之后也保持状态。
你们认为这是一种在容器化环境中重新启动时防止不必要的状态恢复的好方法吗(除了kubernetes中的状态集,我们还没有使用k8s )吗?
发布于 2022-04-20 16:44:22
这种方法的一个问题是,如果应用程序在容器化环境中运行,则一旦重新启动/重新部署应用程序,状态就会丢失。
不一定。您可以将磁盘附加到容器上,并使用有状态集(Kubernetes)重新附加相同的磁盘,从而保留状态。
Cf https://www.confluent.io/kafka-summit-sf18/deploying-kafka-streams-applications/
网络文件系统经常引起问题。不建议使用它们。要获得更快的故障转移,您可以使用备用任务代替。
https://stackoverflow.com/questions/71932203
复制相似问题