前言:该博客主要是记录自己学习的过程,方便以后查看,当然也希望能够帮到大家。
完整代码地址在结尾!!
第一步,导入maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
第二步,配置application.yml,如下
server:
port: 8185
shutdown: graceful # 在web容器关闭时,web服务器将不再接收新请求,并将等待活动请求完成的缓冲期。默认为立即关闭。
spring:
application:
name: actuator-demo-server
lifecycle:
timeout-per-shutdown-phase: 20s # 默认时间为30S, 意味着最大等待30S,超时候无论线程任务是否执行完毕都会停机处理,一定要合理合理设置。
management:
endpoint:
health:
show-details: always # 显示健康详情
shutdown:
enabled: true # 开启shutdown端点访问
endpoints:
web:
base-path: /actuator # 访问根路径
exposure:
include: "*" # 开启除了shutdown以外的所有端点访问
第三步,创建TestController,如下
/**
* <p>
* 前端控制器
* </p>
*
* @author luoyu
* @since 2020-02-13
*/
@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {
/**
* @author luoyu
* @description 测试接口
*/
@GetMapping(value = "/get", produces = "application/json; charset=UTF-8")
public String getTest1() throws Exception {
log.info("开始");
Thread.sleep(10000L);
log.info("结束");
return "请求成功!";
}
}
第四步,测试,流程如下
- 启动项目
- 用GET方式请求http://localhost:8185/test/get接口
- 用POST方式请求http://localhost:8185/actuator/shutdown接口
- 观察控制台打印日志,发现是等待接口请求完成后才停机
另外,其他端点的路径如下表格,注意,前面需要添加/actuator根路径,如下
请求方式 | 路径 | 说明 |
---|---|---|
POST | /shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
GET | /autoconfig | 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 |
GET | /configprops | 描述配置属性(包含默认值)如何注入Bean |
GET | /beans | 描述应用程序上下文里全部的Bean,以及它们的关系 |
GET | /dump | 获取线程活动的快照 |
GET | /env | 获取全部环境属性 |
GET | /env/{name} | 根据名称获取特定的环境属性值 |
GET | /health | 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 |
GET | /info | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
GET | /mappings | 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 |
GET | /metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
GET | /metrics/{name} | 报告指定名称的应用程序度量值 |
GET | /trace | 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等) |
完整代码地址:https://github.com/Jinhx128/springboot-demo
注:此工程包含多个module,本文所用代码均在actuator-demo模块下
后记:本次分享到此结束,本人水平有限,难免有错误或遗漏之处,望大家指正和谅解,欢迎评论留言。
springboot项目修改启动打印图标
网友评论