SpringBoot为我们提供了监控管理的功能,我们可以通过一些http请求从而方便地观察当前应用程序的状态,这一篇就来记录一下 SpringBoot和它的监控端点们。
首先,还是那句话,需要什么功能就引入对应功能的starter
,这里我们直接通过spring initializr
来创建项目并引入依赖:
其中devtools
是引入热部署,方便测试修改。web
是为了直观看到(也必须要),actuator
就是监控管理的依赖了。
创建完项目后,直接启动,然后在控制台会看到:
2020-05-11 09:11:18.969 INFO 1118 --- [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator'
可以通过访问/actuator
这个路径,从而得到其他的监控端点访问路径:
目前有这么多监控端点可用,如果需要用到一些别的,我们需要去全局配置文件(application.yaml
)配置端点全暴露:
#开放所有监控端口
management:
endpoints:
web:
exposure:
include: '*'
之后重新编译程序,再去访问localhost:8080/actuator :
这些都是我们可以访问的端点,举个例子,我们访问localhost:8080/actuator/beans ,这个作用是显示当前ioc容器中有多少个组件,并显示出组件的具体信息:
其他的就不做举例了,这里有一张表格,显示各个端点有什么用:
值得一提的是,有一个/actuator/shutdown
,通过这个端口,可以直接关闭应用(这个挺猛,hhh),但是使用它前要先去配置文件中配置,把这个端口打开:
management:
endpoints:
shutdown:
enabled: true
之后重新编译项目,这个端点需要post请求发送,可以使用类似postman
的软件来进行发送,这里我用idea的restclient插件来发送post请求到localhost:8080/actuator/shutdown:
可以看到服务器被它关闭了。
不仅如此,使用这个组件可以很方便的来监控程序的实时状态。