Spring boot spring boot 2优雅关闭web

Spring boot spring boot 2优雅关闭web,spring-boot,kubernetes,spring-cloud-stream,spring-boot-actuator,Spring Boot,Kubernetes,Spring Cloud Stream,Spring Boot Actuator,在Kubernetes中是否有任何推荐的方法可以优雅地关闭Spring:boot 2应用程序 捕捉终止信号SIGTERM 告诉Tomcat停止接受新请求。(或Jetty、Undertow或Netty/WebFlux,具体取决于所使用的嵌入式web服务器)。或者告诉SCS停止发送/收听卡夫卡上的消息 告诉执行器运行状况端点转到服务不可用(503) 然后在X秒后关闭应用程序或(SIGKILL) 我正在尝试优雅地关闭Rest应用程序和SCS(kafka consumer&producer)应用程序如果

在Kubernetes中是否有任何推荐的方法可以优雅地关闭Spring:boot 2应用程序

  • 捕捉终止信号SIGTERM
  • 告诉Tomcat停止接受新请求。(或Jetty、Undertow或Netty/WebFlux,具体取决于所使用的嵌入式web服务器)。或者告诉SCS停止发送/收听卡夫卡上的消息
  • 告诉执行器运行状况端点转到服务不可用(503)
  • 然后在X秒后关闭应用程序或(SIGKILL)

  • 我正在尝试优雅地关闭Rest应用程序和SCS(kafka consumer&producer)应用程序

    如果您使用的是最新版本的spring boot,即2.3.5.RELEASE,那么您只需将以下属性添加到application.properties文件中即可

    server.shutdown=1 spring.lifecycle.每个关机阶段超时=30s

    在Kubernetes世界中,您可以使用preStop挂钩。但是,如果您确实希望在SIGTERM启动之前保持,请使用此选项


    在容器终止之前立即调用此钩子。未向处理程序传递任何参数。此事件处理程序正在阻塞,必须在将删除容器的调用发送到Docker守护程序之前完成。Docker发送的SIGTERM通知也会被发送。在POD的终止中可以找到对终止行为的更完整描述。

    在Kubernetes中推荐的方法