天天看點

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

哈喽各位同學們大家好呀,小編繼續大家為分享開發者學院中課程“Spring Boot2.5實戰 – 應用程式性能監控(Admin&Actuator)”幹貨總結哦~Spring Boot 2.5.x開發實戰可是Java中級工程師必備課程!

課程連結以及圖譜位址小編已經為大家指路了,搭配學習效果更佳👇

課程名稱:Spring Boot 2.5.x開發實戰

課程位址:

https://developer.aliyun.com/learning/course/71?spm=a2c6h.21254954.0.0.4e905907uoWZzr

圖譜名稱:Alibaba Java 技術圖譜

圖譜位址:

https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ

Spring Boot2.5實戰 – 應用程式性能監控(Admin&Actuator)

歡迎收看spring boat實戰開發系列課程,這節課也講另外一個非常重要的主題叫應用程式的性能監控。在生産環境下,應用程式的性能監控是非常重要的,開發階段可能還不嚴重,但是生态環境下的話有可能基于高并發,比如雙11等帶來的這些流量沖擊問題,可能應用程式在生産環境下,會因為一些配置參數等網絡問題,導緻應用程式性能可能出現這個問題,比如在高并發等會導緻大量的記憶體耗盡等問題,或者應用程式代碼本身在前期開發設計階段做得不夠詳細,會出現緩慢的記憶體洩漏,都需要去做應用程式的性能監控,保證應用程式的強壯性,以及我們後期的維護等。 

一、Spring Boot實戰 – 應用程式性能監控APM 

  1. Spring Boot 2.0監控名額 

基于Spring Boot應用程式,我們如何做應用程式的性能監控。對于微服務架構的市場開發課程,也是很重要的一個鋪墊,大家需要實戰操作去了解我們整個課程内容,包括我們會講非常重要的裡面提供了一個元件,executed還有社群裡面一個重要的開發項目,Spring Boot2.5,來幫我們去提供可視化的一套接口,Spring Boot本身也提供這種對應的一些接口,你可以去抓取這些原始的資料,我們在後續使用Spring Boot進行開發的話,這些資訊也都可以抓得到,隻不過我們需要大家去了解,結合自己的整個監控需求,進行配置相應的接口。

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)
  1. Spring Boot性能監控Actuator 

1. Spring Boot 2014年4月性能監控和管理元件Actuator 。 

2. 使用HTTP Endpoint或JMX,運作狀态名額資料收集 

3. health, metrics, info, dump, env, etc 

4. 2.0以後改進監控位址帶有/actuator字首 

5. 例如/actuator/health監控健康狀态資訊 

6. 禁用management.endpoint.shutdown.enabled=true 

7. 單個禁用 

8. management.endpoints.enabled-by-default=false 

9. management.endpoint.info.enabled=true 

Actuator,主要是來幫助你去進行應用程式的一些監控參數的收集,并且進行擴充暴露給第三方程式的。地質清單裡面實際針對的各種不同的一個資料的暴露的資訊,這裡面比較重要的應用程式性能監控的這些資料都屬于敏感資料,不能輕易的暴露給第三方及外界。當然還有另外一個問題就是這是一把雙刃劍,它本身的性能監控名額的資料收集的話,一定也會消耗一定的伺服器資源,比如我們講的是 CPU或者我們說記憶體,這裡面還會通過網絡暴露的話會消耗一定的網絡帶寬資源,它提供了各種不同的這種監控名額資訊的話,實際都屬于我們說叫Endpoint的系列都給你提供了一個暴露的端點或者叫終結點。 

  1. Spring Boot 2.4實戰 –内置性能監控 

Endpoint

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

通過網絡給你提供了一個資料暴露的接口,現在就可以用第三方的一些展示資料或自己來開發,開發一個web界面來去展示。 

  1. web
    開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)
    對接可以抓取原始的機關資訊,可以通過HTTP協定或者我們JMX來暴露可以對接prometheus原生環境下比較重要的一個心理監控的一套解決方案。 

例子:2.0以後啟動了一個我們說的這樣一個應用程式,這個位址上下面有很多子目錄,對應的這些不同資訊的位址,然後你可以去抓取他然後進行展示,是非常重要的。 

2.2.0預設監控EndPoint 

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

後面看如何和實際項目進行結合,講了很多理論知識和概念,也是希望告訴大家這裡面對于我們的後續大家開發使用Spring Boot應用程式,包括recipe項目前後端分離的架構的項目,包括我們說微服務架構項目叢集,這都是非常重要的一個方式,而且我們整個微架構進行監控的話,也是在這個基礎上進行了更新改造。

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

你如果要做應用程式的性能監控,這是敏感資料,你要加入終結點的一個暴露資訊的一個形式,這個*的話代表所有種類,如果說我隻暴露健康的,我隻暴露記憶體或者thread的或者bean的,你隻指定一個用逗号分割,有多個用逗号分割。 

Micrometer  

1. Micrometer是多元度名額收集器,語言中立的API。  

2. 通過類路徑和配置,可以支援多系統導出資料,內建架構!  

3. Spring Boot 2 Actuator中包含的名額收集工具。  

4. Spring Boot 1.5,1.4和1.3支援,額外依賴項。  

5. Micrometer為Spring Boot 1中counters和gauges增強功能。  

6. 例如, Micrometer Timer能夠生成吞吐量,總時間,最近樣本的最大延遲,預先計算的百分位數,百分位柱狀圖相關的時間序列和SLA邊界計數。 

7. 支援更多的監控工具如Prometheus, Datadog, Wavefront, SignalFx, Influx, etc  

8. Spring Boot 2強化特性 

Micromeat叫微型名額收集器,它是幫你收集并發,吞吐量相關的那些資訊qps,Wps每秒的讀取數量每秒的寫入數量,這些資料都可以收集起來以後做曲線圖,Micromeat的話叫基準測量。 

Count是個計數器,這個接口累計被調用次數,還有我們說高階的話,有可能統計的我們說是不一樣的,裡面我們說的是針對不同的資料類型,它不同的統一名額,它的數量是不一樣,比如我們統計的可能是過去一秒鐘它的并發每秒鐘的并發的分值,這都不一樣。 

Spring Boot 2.0增強Micrometer 

1. JVM各種參數使用率  

2. 各種記憶體和緩沖池  

3. 與垃圾收集有關的統計  

4. 線程使用率  

5. 加載/解除安裝的類的數量  

6. CPU使用率  

7. Spring MVC和WebFlux請求延遲時間  

8. RestTemplate延遲時間  

9. 緩存使用率  

10.資料源使用率,包括HikariCP池名額參數  

11.RabbitMQ連接配接工廠參數  

12.檔案描述符使用率使  

13.Logback:記錄每個級别記錄到Logback的事件數量  

14.正常運作時間:報告正常運作時間表和表示應用程式絕對啟動時間的固定計量表  

15.Tomcat使用情況 

Micrometer采集資料圖形 

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

Micrometer 支援的監控系統 

1. Netflix Atlas  

2. CloudWatch  

3. Datadog  

4. Ganglia  

5. Graphite  

6. InfluxDB  

7. JMX  

8. New Relic  

9. Prometheus  

10. SignalFx  

11. StatsD (Etsy, dogstatsd, Telegraf, and proprietary formats)  

12. Wavefront  

13. AppOptics  

14. Azure Application Insights  

15. Dynatrace  

16. Elasticsearch  

17. StackDriver 

三、Java Spring Boot 2.5監控實戰 

1. 開發監控服務端Spring Boot Admin Server 

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

Spring boot的域名的一個server端,收入端一定要有,而且要啟用一個很重要的注解。 

注解:

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

這裡面模拟了一個被監控的思維,模特成語主要裡面最主要的就是它配置檔案裡面一定要暴露監控的資料,如果暴露兩種的話,在這裡面直接來配置就可以了,否則是暴露所有, 

另外的話就是說這裡面作為作為被監控方作為用戶端程式的話,你這裡面要配置一下監控中心admin的例子。

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

Admin一個spring的用戶端的依賴要加進來,用戶端程式就具備了資料采集加資料上傳的功能。 

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

Spring Boot Admin監控中心 

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)

Spring Boot Amin監控中心 

開發者學堂課程幹貨總結——Spring Boot 2.5.x開發實戰(九)