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:
可以看到服務器被它關閉了。
不僅如此,使用這個組件可以很方便的來監控程序的實時狀態。