springboot2.3liveness探测特性在正常关闭时失败

ojsjcaue  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(372)

我正在测试SpringBoot2.3中的新特性( server.shutdown=graceful 和tomcatweb服务器)的支持 terminationGracePeriodSeconds 现场。当优雅的关闭阶段开始时,新的http请求将按预期被拒绝,此时应详细说明当前请求,直到可配置的超时( spring.lifecycle.timeout-per-shutdown-phase ). 奇怪的行为是spring引导执行器活动结果,因为在这种情况下,活动端点是不可到达的。
因此,kubelet无法知道微服务在关闭期间是否仍然存在,或者是否因其他原因而卡住。因为k8s liveness探测器不依赖 terminationGracePeriodSeconds 字段,pod将根据其k8s活动配置重新启动,而spring boot microservice由于野蛮重新启动而无法执行正常关机。
我错过什么了吗?我如何处理这种情况?

nc1teljy

nc1teljy1#

同时,我采用了另一种解决方案,我使用rmi协议通过jmx调用spring boot的liveness探测器。在这种情况下,活跃度在正常关闭期间给出一个“up”响应。为此:启用jmx设置属性 spring.jmx.enabled 为true,则使用jmx客户机调用jmx运行状况指示器。

相关问题