我正在开发一个 Spring Boot 应用程序,我们通过 kubernetes 进行部署。我的要求是运行一些逻辑,以防 Pod 崩溃或 Pod 被删除或 Pod 被故意关闭。目前我正在使用 @PreDestroy 在退出时运行我的逻辑。
@Component
public class EngineShutDownHook{
private static final Logger LOGGER = LoggerFactory.getLogger(EngineShutDownHook.class);
@PreDestroy
public void onExit() {
LOGGER.info("Shutting engine.");
System.out.println(" engine is stopping.");
}
}
但是我不确定此代码是否会在所有可能的退出情况下运行。我还了解了spring的ExitCodeGenerator。您能否建议实现此目标的最佳方法是什么?
最佳答案
使用Container Lifecycle Hooks K8s
PreStop:在容器因 API 请求或管理事件(例如 Activity 探测失败、抢占、资源争用等)而终止之前立即调用此 Hook 。
关于java - 在 Pod 意外关闭时运行退出逻辑的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60033625/