java - 在 Pod 意外关闭时运行退出逻辑的最佳方法

标签 java spring-boot kubernetes shutdown shutdown-hook

我正在开发一个 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/

相关文章:

java - 如何使用亚马逊java库实现AWS签名请求?

java - 我必须在取消选中复选框时从数组列表中删除元素

java.lang.InstantiationException : java. lang.Class<com.wavedevelopers.eventsplanning.BookingForm> 没有零参数构造函数

java - 返回给定子类实例的方法的通用签名是什么?

java - 如何从 Spring 5 WebClient ClientResponse 中提取响应 header 和状态代码

intellij-idea - 从 Intellij IDEA 运行 JHipster Gradle 任务

java - MYSQL Workbench 未填充 Spring Boot JPA 实体的表数据

kubernetes - Spring Cloud Consul-服务未在K8s上注册可联系地址

amazon-s3 - 如何将S3存储桶复制到Kubernetes节点上

tomcat - Docker 和 Kubernetes 上的 symmetryds 用于 Google 容器引擎部署