是否有任何建议的方法可以正常关闭Kubernetes中的Spring:boot 2应用程序。
我正在尝试正常关闭Rest应用程序和SCS(kafka消费者和生产者)应用程序
答案 0 :(得分:0)
几周前,我发现这篇文章在类似情况下很有用:
http://blog.marcosbarbero.com/graceful-shutdown-spring-boot-apps/
建议的示例已通过将SIGTERM发送到spring-boot服务进行了测试
答案 1 :(得分:0)
如果您使用的是最新版本的spring-boot,即2.3.5.RELEASE,则只需执行以下操作即可将以下属性添加到application.properties文件中。
server.shutdown =优美 spring.lifecycle.timeout-per-shutdown-phase = 30s
在Kubernetes世界中,您可以使用preStop挂钩。但是,当您实际上想要在启动SIGTERM之前保留时,请使用此功能。
在容器终止之前立即调用此钩子。没有参数传递给处理程序。该事件处理程序处于阻塞状态,必须在删除容器的调用发送到Docker守护程序之前完成。 Docker发送的SIGTERM通知也仍然发送。有关终止行为的更完整描述,请参见《终止终端》。