springboot应用优雅重启-actuator

author author     2023-03-19     335

关键词:

参考技术A

SpringBoot最大特点便是简化配置,提升开发效率,实现简单部署就是通过内嵌一个Web容器,如果Tomcat、Jettty等。
对于SpringBoot应用,只需打包成一个简单的Jar包,然后执行java -jar就可以启动,是一种非常优雅的方式,但同时也隐藏着一些问题,如:应用如何停止?对于传统的部署在容器中的Java应用(非Spring Boot应用)可以使用容器提供的脚本优雅重启,但是SpringBoot应用容器是内嵌的,也就不会存在容器的脚本,最直接的想法就是kill进程,但这样很不优雅,进程强行终止会带来数据丢失或者终端无法恢复到正常的状态,在分布式环境下还可能导致数据不一致的情况。

SpringBoot提供了几种停止的方法,本文重点介绍actuator endpoint的方法,SpringBoot官方文档的Endpoints章节中介绍了应用发布生产准备的各种特性,其中通过Actuator的HTTP Endpoint,开发人员可以方便地对应用进行监控和管理。

按照上面进行配置后,SpringBoot项目就可以优雅关闭了,只要模拟一个POST请求,在Postman或者其他工具,访问如下路径

:替换成自己项目的host及port,必须是 post
返回

说明SpringBoot应用已优雅关闭

虽然SpringBoot应用已可以优雅关闭了,但是还存在很大的安全隐患,如果有搞破坏的知道了ip、端口号后就可以模拟该请求停止服务了,因此需要增加一些安全限制

登录到SpringBoot应用部署的服务器,本地通过curl执行POST请求

然后可以可到如下输出

说明SpringBoot应用已经优雅且安全的进行了停止

kill -9 pid 是不进行任何等待判断,可以理解为操作系统从内核级别强行杀死某个进程,可模拟为系统宕机、系统断点等特殊情况
kill -15 pid 是等待应用关闭,执行阻塞操作,有时候也会出现无法关闭应用的情况(线上理想情况,是bug就该追根溯源)

springboot参考教程内部应用监控(actuator)

...,应用的内部健康情况均无法监控,为了解决这个问题,springboot提供了Actuator执行器。下面具体介绍什么是Actuator,以及怎么使用。1 启用Actuator 3.1.1.加入依赖 加入如下Starterpom:  &nb 查看详情

使用actuator实现springboot应用监控(代码片段)

我们知道SpringBoot提供了Actuator组件,方便我们对应用程序进行监控和维护。接下来,就来介绍Actuator到底是什么?如何在SpringBoot项目中快速集成Actuator?一、Actuator简介1.Actuator是什么?Actuator是SpringBoot提供的应用系统监控的开... 查看详情

springboot-actuator应用后台监控

一前言springboot额外的特色是提供了后台应用监控,可以通过HTTP或者JMX的方式管理监控应用,本文主讲HTTP方式;其主要的功能是监控应用的健康状态,查看环境变量等;二pom.xmlspringboot2.1.1,主要引入actuator依赖,web依赖用于测试... 查看详情

springboot-actuator(代码片段)

actuaotr是springboot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restfulapi请求来监管、审计、收集应用的运行情况,针对微服务而言它是必不可少的一个环节。 Endpoints  actuator的核心部分,它用来监视... 查看详情

springboot1.x和2.x优雅重启实战

...待未完成的请求执行完成,这样可以保证数据的完整性。SpringBoot1.Ximportjava.util.concurrent.Executor;importjava.util.concurrent.ThreadPoo 查看详情

springboot2.0实现优雅停机

SpringBoot1.X和2.X优雅重启实战项目在重新发布的过程中,如果有的请求时间比较长,还没执行完成,此时重启的话就会导致请求中断,影响业务功能,优雅重启可以保证在停止的时候,不接收外部的新的请求,等待未完成的请求... 查看详情

springboot系列:springboot使用actuator

Actuator为springboot提供了运行状态监控的功能通过集成它我们可以试试获取到应用程序的运行信息首先,在pom.xml中引入起步依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</arti 查看详情

40springboot——运行状态监控使用actuator

SpringBootActuator提供了运行状态监控的功能Actuator监控数据可以通过阻REST远程shell和JMX方式获得。我首先来介绍通过REST方式查看Actuator的节点的方法,这种是最常见且简单的方法。 通过执行器端点,您可以监控应用程序并与之... 查看详情

springboot入门(5)深入actuator

...究竟,了解它的行为,检查它的健康状况呢?我们将了解SpringBoot的Actuator。它提供了很多生产级的特性,比如监控和度量SpringBoot应用程序要开启,需要增加一个依赖默认情况下仅仅开启了少量health节点。为了看到更多,在调试... 查看详情

springboot2.x(十六):应用监控之springbootactuator使用及配置

Actuator简介Actuator是SpringBoot提供的对应用系统的自省和监控功能。通过Actuator,可以使用数据化的指标去度量应用的运行情况,比如查看服务器的磁盘、内存、CPU等信息,系统的线程、gc、运行状态等等。Actuator通常通过使用HTTP和... 查看详情

使用actuator监控(代码片段)

Actuator可能大家非常熟悉,它是springboot提供对应用自身监控,以及对应用系统配置查看等功能。springboot使用actuator的方式非常简单,只需要在项目中加入依赖spring-boot-starter-actuator,完整pom文件如下:<?xmlversion="1.0"encoding="UTF-8"?... 查看详情

springboot应用监控——actuator安全隐患及解决方案

点击关注公众号,实用技术文章及时了解来源:blog.csdn.net/u013087026/article/details/109536552概述微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点决定了功能模块的部署是分布式的,... 查看详情

springboot2.0actuator的健康检查

参考技术A在当下流行的ServiceMesh架构中,由于Springboot框架的种种优点,它特别适合作为其中的应用开发框架。说到ServiceMesh的微服务架构,主要特点是将服务开发和服务治理分离开来,然后再结合容器化的Paas平台,将它们融合... 查看详情

springboot2.x系列教程(七十)springbootactuator集成及自定义endpoint详解

前言曾经看到SpringBootActuator这个框架时,一直在想,它到底有什么作用呢?虽然知道它提供了很多端点,有助于应用程序的监控和管理,但如果没有直接的实践案例,还是很难有说服力的。直到上篇文章《微服务架构:Nacos本地... 查看详情

springboot核心技术:actuator远程关闭服务“黑科技”

参考技术A之前章节介绍了Actuator对服务系统监控相关的知识点,了解到了开放指定监控节点、查看详细健康信息,我们本章来介绍下Actuator的黑科技,远程关闭应用服务。恒宇少年在博客整理三套免费学习教程专题,由于文章偏... 查看详情

springboot掌握的差不多了,就剩下一个actuator没搞定了,本文详细来介绍!!!(代码片段)

SpringBoot自动装配原理SpringBoot的自定义StarterActuator(监控)1.Actuator介绍  通过前面的介绍我们明白了SpringBoot为什么能够很方便快捷的构建Web应用,那么应用部署上线后的健康问题怎么发现呢?在SpringBoot中给我们提供了Actu... 查看详情

springboot掌握的差不多了,就剩下一个actuator没搞定了,本文详细来介绍!!!(代码片段)

SpringBoot自动装配原理SpringBoot的自定义StarterActuator(监控)1.Actuator介绍  通过前面的介绍我们明白了SpringBoot为什么能够很方便快捷的构建Web应用,那么应用部署上线后的健康问题怎么发现呢?在SpringBoot中给我们提供了Actu... 查看详情

springboot在k8s下实现优雅停机

...,否则滚动升级时,还是会影响到业务。所以,我们希望SpringBoot应用实现优雅停机。此次教程基于SpringBoot2.5.0。默认情况下,SpringBoot是直接关机的,所以,需要将优雅停机配置打开。在applicatoin.yaml中配置:这时我们只需要在发... 查看详情