1、由于重启或读取配置需要用到actuator相关的功能,因此需要先引入包,在pom.xml中加入如下配置
org.springframework.boot
spring-boot-starter-actuator
2、在启动类中用户自动刷新配置功能,即在启动类中加入@RefreshScope注解
@RefreshScope
public class ServiceGatewayApplication
3、配置Yml 文件,允许访问相关的接口,代码如下
management:
endpoints:
web:
exposure:
include:
"*"
完成上面三个配置后,启动系统,在启动日志中会出现如下日志
2020-07-24 11:45:37,506 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/archaius],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,508 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/auditevents],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,509 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/beans],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,509 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/health],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,510 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/conditions],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,510 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/configprops],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,510 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/env],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,510 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/env/{toMatch}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,512 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/env],methods=[POST],consumes=[application/vnd.spring-boot.actuator.v2+json || application/json],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,512 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/env],methods=[DELETE],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,512 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/info],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,513 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/logfile],methods=[GET],produces=[application/octet-stream]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,513 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/loggers],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,513 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/loggers/{name}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,514 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/loggers/{name}],methods=[POST],consumes=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,514 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/heapdump],methods=[GET],produces=[application/octet-stream]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,514 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/threaddump],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,515 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/metrics/{requiredMetricName}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,515 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/metrics],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,515 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/scheduledtasks],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,516 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/httptrace],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,516 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/mappings],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,516 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/refresh],methods=[POST],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,516 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/features],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,516 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/service-registry],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,517 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/service-registry],methods=[POST],consumes=[application/vnd.spring-boot.actuator.v2+json || application/json],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,518 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/routes],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,518 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/routes],methods=[POST],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,518 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/routes/{format}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,519 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator/filters],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2020-07-24 11:45:37,520 [INFO ] main org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping:AbstractHandlerMethodMapping.java:550- Mapped "{[/actuator],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto protected java.util.Map> org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.links(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
日志中actuator相关的接口即允许我们访问的接口,也可以通过http://ip地址:端口号/actuator 查看系统允许访问哪些接口
其中:actuator/refresh为刷新配置接口,actuator/restart接口为重新启动服务接口。
但是这个配置暴露的接口太多,大多数情况下我们只想用其中几个,因此可以用以下方式来进行配置
management:
endpoint:
refresh:
enabled: true
restart:
enabled: true
endpoints:
web:
exposure:
include:
refresh,restart
在这个配置为 endpoint用于配置需要启用哪个接口服务,然后在include中配置这个接口的路径即可。
在这里我配置了两个服务,即重新启动服务和刷新配置服务。如果大家要配置其他服务,可以根据actuator提供的接口自行配置