這篇文章主要講解了“Spring Boot支持的端點有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Spring Boot支持的端點有哪些”吧!
我們提供的服務(wù)有:網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、淳安ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的淳安網(wǎng)站制作公司
首先我們來捋一下應(yīng)用監(jiān)控都需要哪些東西?其實就兩點:
信息采集器
數(shù)據(jù)可視化 UI
信息采集器會收集應(yīng)用的健康、審計、指標(biāo)、HTTP 請求等信息,并將之暴露出來,數(shù)據(jù)可視化 UI 則會通過儀表盤、圖形等展示這些數(shù)據(jù),并對數(shù)據(jù)進行分析、報警等處理。我們分別來看。
Spring Boot Actuator在 Spring Boot 項目中,我們使用的信息采集器主要就是 Spring Boot Actuator,這個模塊由 Spring Boot 官方提供,它包含了許多生產(chǎn)級別的功能,例如健康檢查、審計、指標(biāo)收集、HTTP 請求追蹤等,Spring Boot Actuator 將這些信息收集起來后,通過 HTTP 和 JMX 兩種方式暴露給外部模塊。例如 Spring Boot Actuator 通過 /health 端點(endpoints)提供了應(yīng)用的健康信息,開發(fā)者只需要訪問該端點就可以看到應(yīng)用的健康信息,但是這些端點返回的數(shù)據(jù)是 JSON 格式的,不方便查看,也不方便分析,所以一般情況下,Spring Boot Actuator 都是和一些外部模塊一起使用。
Spring Boot Actuator
支持的端點主要有如下一些:
如果是 Web 應(yīng)用,則再次基礎(chǔ)上還支持如下端點:
提到 Spring Boot Actuator,就還有一個東西需要和大家介紹,那就是 Micrometer,從 Spring Boot2.0 開始,Actuator 底層改為了 Micrometer。
當(dāng)我們在一個 Spring Boot 項目中引入 Actuator 依賴之后,我們會發(fā)現(xiàn)它里邊包含了 Micrometer:
這個依賴又是干什么的呢?
Micrometer 為 Java 平臺上的性能數(shù)據(jù)收集提供了一個通用的 API,應(yīng)用程序只需要使用 Micrometer 的通用 API 來收集性能指標(biāo)即可,而 Micrometer 則會負責(zé)完成與不同監(jiān)控系統(tǒng)的適配工作,類似于一個 Adapter,有了這個 Adapter,切換監(jiān)控系統(tǒng)就變得非常容易。同時 Micrometer 還支持推送數(shù)據(jù)到多個不同的監(jiān)控系統(tǒng)。
而 Spring Boot Actuator 使用 Micrometer 與外部應(yīng)用監(jiān)視系統(tǒng)進行集成,這樣一來,開發(fā)者只需要稍微配置一下就可以使其和外部應(yīng)用監(jiān)視系統(tǒng)進行整合了。Micrometer 支持的監(jiān)控系統(tǒng)有:
AppOptics
Atlas
Datadog
Dynatrace
Elastic
Ganglia
Graphite
Humio
Influx
JMX
KairosDB
New Relic
Prometheus
SignalFx
Simple (in-memory)
StatsD
Wavefront
信息采集器這塊,老實說松哥見到的大部分項目都是用的 Spring Boot Actuator,似乎沒有其他更好的選擇。如果小伙伴們有用到其他方案,也可以留言討論。
接下來我們來看看一些常用的應(yīng)用監(jiān)控可視化工具。
Spring Boot Admin
這個算是 Spring Boot 中最最正宗的應(yīng)用監(jiān)控可視化工具了,看名字就知道有多正宗,當(dāng)我們創(chuàng)建一個 Spring Boot 項目時,選擇依賴時候就有這個選項:
如果是單體應(yīng)用很多人可能會選擇 Spring Boot Admin 作為監(jiān)控數(shù)據(jù)可視化工具,不過它也支持微服務(wù)應(yīng)用的(可以通過 Eureka、Consul 等注冊中心獲取應(yīng)用信息),只不過在微服務(wù)中,我們可能會更多的選擇 Grafana+Prometheus 組合。
Spring Boot Admin 主要包含如下功能:
顯示應(yīng)用健康信息。
顯示應(yīng)用運行的詳細信息,例如 JVM 和內(nèi)存指標(biāo)、數(shù)據(jù)源指標(biāo)、緩存指標(biāo)等等。
顯示應(yīng)用的構(gòu)建信息。
查看 JVM 系統(tǒng)和環(huán)境屬性
查看 Spring Boot 配置屬性
支持 Spring Cloud 中的端點刷新功能 /refresh-endpoint
方便的日志級別管理功能
可以與 JMX-beans 進行交互
查看 Thread dump
查看 http 請求
查看計劃任務(wù)
查看和刪除活動會話
查看 Flyway/Liquibase 數(shù)據(jù)庫遷移
下載 heapdump
狀態(tài)更改通知
...
可以看到,Spring Boot Admin 不僅僅是將 Actuator 接口中的數(shù)據(jù)進行可視化,還在此基礎(chǔ)上提供了分析、報警等功能。
Spring Boot Admin 的顯示界面如下:
Grafana+Prometheus
這個組合在微服務(wù)項目中比較常見,松哥之前錄制的 Spring Cloud 視頻里邊也有講到。
Prometheus 是一款開源的監(jiān)控 + 時序數(shù)據(jù)庫 + 報警軟件,由SoundCloud 公司開發(fā)的,在 CNCF 基金會托管并已成功孵化,不過這個 Prometheus 的 UI 比較簡單,用戶體驗不怎么好,現(xiàn)在都流行大屏監(jiān)控頁面,上面展示各種炫酷的圖表。所以在實際應(yīng)用中,Prometheus 一般都是結(jié)合 Grafana 一起來使用,Grafana 也是一個開源的跨平臺度量分析和可視化 + 告警工具,它支持多種數(shù)據(jù)源,包括 Prometheus,Grafana 的 UI 就比較炫酷,如下:
當(dāng)然,使用這套組合也離不開 Spring Boot Actuator。
感謝各位的閱讀,以上就是“Spring Boot支持的端點有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Spring Boot支持的端點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!