Java Spring Boot 2.3 Liveness Probe功能在正常关机时失败
我正在用KubernetesJava Spring Boot 2.3 Liveness Probe功能在正常关机时失败,java,spring-boot,shutdown,livenessprobe,graceful-shutdown,Java,Spring Boot,Shutdown,Livenessprobe,Graceful Shutdown,我正在用KubernetesterminationGracePeriodSeconds字段测试SpringBoot2.3中的新功能优雅关机(server.shutdown=malente和Tomcat Web服务器)。 当正常关机阶段开始时,新的HTTP请求将按预期被拒绝,此时应详细说明当前请求,直到可配置超时(spring.lifecycle.timeout per shutdown phase)。 奇怪的行为是Spring启动执行器活动结果,因为在这种情况下,活动端点是不可访问的 因此,ku
terminationGracePeriodSeconds
字段测试SpringBoot2.3中的新功能优雅关机(server.shutdown=malente
和Tomcat Web服务器)。
当正常关机阶段开始时,新的HTTP请求将按预期被拒绝,此时应详细说明当前请求,直到可配置超时(spring.lifecycle.timeout per shutdown phase
)。
奇怪的行为是Spring启动执行器活动结果,因为在这种情况下,活动端点是不可访问的
因此,kubelet无法知道微服务在关机期间是否仍处于活动状态,或者是否因其他原因而卡住。由于K8s liveness probe不依赖于terminationGracePeriodSeconds
字段,POD将根据其K8s liveness配置重新启动,而Spring boot microservice由于粗暴重启而无法正常关机
我错过什么了吗?我如何管理这个场景?与此同时,我采用了另一个解决方案,我使用RMI协议通过JMX调用spring boot的liveness probe。在这种情况下,活跃度在正常关闭期间给出“向上”响应。 为此: 启用JMX将属性
spring.JMX.enabled
设置为true,并使用JMX客户端激活JMX运行状况指示器