求求你们别再用kill-9了,这才是SpringBoot停机的正确方式!!!

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
可观测可视化 Grafana 版,10个用户账号 1个月
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 求求你们别再用kill-9了,这才是SpringBoot停机的正确方式!!!

在Spring Boot应用中,有几种常见的停止方式:1. 使用CTRL+C:这是最简单的停止方式,但不推荐在生产环境使用。因为它会立即终止进程,没有机会实现优雅关闭。2. 使用SIGTERM信号:发送SIGTERM信号到Spring Boot进程的PID,Spring Boot会注册一个ShutdownHook来优雅关闭应用。这是生产环境推荐的停止方式。


kill -SIGTERM pid

  1. 调用Actuator的shutdown接口:Actuator暴露了一个/shutdown的HTTP端点来关闭应用。这也是生产环境推荐的方式之一。

curl -X POST http://localhost:8080/actuator/shutdown
  1. 运行应用提供的退出命令:如果在应用中提供了自定义的退出命令,也可以通过运行该命令来关闭应用。比如,在应用的入口类中提供:

@Component
public class ExitCommand implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.exit(0);
    }
}

然后运行命令:


curl -X POST http://localhost:8080/exit 
  1. 调用ApplicationContext的close方法:通过在程序中直接调用applicationContext.close()方法关闭应用上下文来触发关闭。

@Autowired
private ConfigurableApplicationContext applicationContext;

public void exit() {
    applicationContext.close();
}

然后通过HTTP请求、JMX等方式调用该exit()方法。总之,在生产环境中推荐使用Actuator接口的方式或发送SIGINT/SIGTERM信号的方式来关闭Spring Boot应用。这些方式能够实现优雅关闭,释放资源。而CTRL+C方式只适合在开发环境使用。正确关闭SpringBoot应用,以释放应用占用的资源,这一点在生产环境尤其重要。我们在开发和运维Spring Boot应用时,需要清楚各种停止方式的区别,选用适合的方式。

目录
相关文章
|
6月前
|
Java 应用服务中间件 数据库连接
面试官:SpringBoot如何优雅停机?
面试官:SpringBoot如何优雅停机?
259 0
|
druid Java
若依Springboot项目Druid不停机更换数据源
若依Springboot项目Druid不停机更换数据源
366 0
|
Kubernetes Java 应用服务中间件
Spring Boot 系列:最新版优雅停机详解
目前Spring Boot已经发展到了2.3.4.RELEASE,伴随着2.3版本的到来,优雅停机机制也更加完善了。
12034 2
还能这样玩?SpringBoot这些优雅停机的正确姿势你都会了吗?
什么叫优雅停机? 简单的说,就是向应用进程发出停止指令之后,能保证正在执行的业务操作不受影响,直到操作运行完毕之后再停止服务。应用程序接收到停止指令之后,会进行如下操作:
|
运维 Java Linux
求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!
求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!
297 0
求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!
|
运维 JavaScript 小程序
求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!
求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!
|
IDE Java 应用服务中间件
Java-SpringBoot-20-优雅的停机
先说不优雅的停机我们在ide中启动服务以后,比如说eclipse一般关闭的时候会直接点击红点关闭,如下图所示。在服务器上,也可能会使用kill -9 命令直接干掉服务,那么这样就是不优雅的停机,粗暴滴很!
184 0
Java-SpringBoot-20-优雅的停机
|
消息中间件 NoSQL Java
Spring Boot 2.3.0发布:优雅停机等新特性一览(下)
Spring Boot 2.3.0发布:优雅停机等新特性一览(下)
Spring Boot 2.3.0发布:优雅停机等新特性一览(下)
|
Kubernetes NoSQL 前端开发
Spring Boot 2.3.0发布:优雅停机等新特性一览(中)
Spring Boot 2.3.0发布:优雅停机等新特性一览(中)
Spring Boot 2.3.0发布:优雅停机等新特性一览(中)
|
运维 Java 应用服务中间件
Spring Boot 2.3.0发布:优雅停机等新特性一览(上)
Spring Boot 2.3.0发布:优雅停机等新特性一览(上)
Spring Boot 2.3.0发布:优雅停机等新特性一览(上)