最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文搞懂并學(xué)會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件的詳細教程

 更新時間:2020年09月03日 09:25:21   作者:夸夸可愛豬  
這篇文章主要介紹了一文搞懂并學(xué)會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

目錄閑言碎語:背景Actuator介紹Rest方法來查看Actuatorpom.xml引入Actuator依賴配置application.yml運行項目Actuator配合SpringBootSecurity配置application.xml運行項目配置關(guān)閉項目API端口配置application.yml命令行執(zhí)行post關(guān)閉指令附:Actuator端口信息附:SpringBoot自帶的健康指示器贈言

閑言碎語:

  最近刷抖音,看到了星爺?shù)暮芏嚯娪?,感嘆星爺給后世留下了很多的經(jīng)典作品,我就在想,作為一名程序員,如何留下影響后人的經(jīng)典傳世之作呢,不經(jīng)意間看到了一篇大佬的文章,已經(jīng)近百萬人瀏覽,這就是對后人的一種影響,然后就有了寫這篇博客的沖動,結(jié)合最近在學(xué)習(xí)的SpringCloud,對每一個組件的原理和使用都進行深度的學(xué)習(xí)和理解,然后將心得寫在博客里,如果有不對的地方還請大佬進行指正,小弟不勝感激

背景

  微服務(wù)之后,系統(tǒng)結(jié)構(gòu)拆分隨著業(yè)務(wù)發(fā)展越來越微型化,也意味著節(jié)點會呈現(xiàn)幾何數(shù)量級增長。每個一個節(jié)點都是系統(tǒng)組成部分,如何保持如此多節(jié)點的可用性是一件非常有挑戰(zhàn)的工作。
  全方位監(jiān)控變得越來越重要,當(dāng)我們遇到bug時,總是希望可以看到更多信息,因此一般我們選用的服務(wù)開發(fā)框架都需要有方便又強大的監(jiān)控功能支持。
  Spring Boot Actuator便可以幫助我們?nèi)矫姹O(jiān)控應(yīng)用節(jié)點.
  比如健康檢查、審計、統(tǒng)計、HTTP追蹤等。我們可以通過JMX或者HTTP endpoints來獲得。spring Boot Admin配合下可以進行頁面展示,也和可以與其它外部應(yīng)用系統(tǒng)系統(tǒng)整合。

Actuator介紹

  Actuator是SpringBoot的一個非常重要的功能,Actuator 為開發(fā)人員提供了SpringBoot運行狀態(tài)信息,通過Actuator可以查看程序的運行狀態(tài)的信息。同時它提供了運行狀態(tài)的監(jiān)控功能,Actuator的監(jiān)控功能可以通過Rest、遠程shell、JMX方式獲得,首先我們介紹Rest方法來查看Actuator的節(jié)點方法,這種是十分簡單的方法。
  Spring Boot Actuator 的關(guān)鍵特性是在應(yīng)用程序里提供眾多的Web節(jié)點,通過這些節(jié)點可以實時地了解應(yīng)用程序的運行狀況。有了Actuator,你可以知道Bean在Spring應(yīng)用程序上下文里是如何組裝在一 起的,并且可以獲取環(huán)境屬性的信息和運行時度量信息等。

Rest方法來查看Actuator

pom.xml引入Actuator依賴

首先在pom.xml種引入spring-boot-starter-actuator依賴,代碼如下:

<dependency>
 <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
   <version>2.3.3.RELEASE</version>
</dependency>

配置application.yml

  在application.yml中配置management.port和management.security.enabled,這倆是向外暴露actuator的端口和actuator的非安全驗證方式。
  在這里指定actuator對外暴露的RestApi端口為9091,Spring1.5x默認采用了Actuator安全驗證,為了能夠在瀏覽器上展示效果,不做安全驗證,將其設(shè)置為false。

management:
 server:
 port: 9091 # 對外暴露API接口端口為9001
 servlet:
  context-path: /sys
 security:
 enabled: false # 這是為了在瀏覽器上展示效果 所以設(shè)置為false
 endpoints:
 web:
  exposure:
  include: "*" # include表示需要暴露的endpoint,配置時使用“,”隔開,你也可以用*讓所有endpoint暴露出來
 endpoint:
  health:
  enabled: true
  show-details: always # health endpoint只展示了簡單的UP和DOWN狀態(tài)。為了獲得健康檢查中所有指標的詳細信息,可以設(shè)置其展示詳細信息。
  shutdown:
  enabled: true

  management.endpoint.health.show-details默認值為never,除了always之外還有when-authorized。
  exclude表示在暴露endpoint時,排除掉哪些,同樣使用“,”隔開,例如
management.endpoints.web.exposure.exclude=info # 排除info

  注意:如果不指定會默認采用程序的啟動端口,這樣做的目的就是將監(jiān)控端口與項目端口進行區(qū)分。
  不配置監(jiān)控端口:localhost:8080/actuator/
  配置監(jiān)控端口:localhost:9091/sys/actuator/
  特別注意:在2.0之后的版本訪問地址必須要加上/actuator/才可以

運行項目

  就可以看到詳細的信息了,以health為例:

請求路徑:http://localhost:9091/sys/actuator/health

{
	status: "UP",
	components: {
		diskSpace: {
		status: "UP",
			details: {
				total: 161062318080,
				free: 103786217472,
				threshold: 10485760,
				exists: true
			}
		},
		ping: {
			status: "UP"
		}
 	}
}

Actuator配合SpringBootSecurity

  actuator可以配合security進行權(quán)限控制,從而保護endpint。
  首先在pom.xml中引入SpringBootSecurity依賴:

<dependency>
 <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

配置application.xml

  添加:

spring.security.user.name = admin
spring.security.user.password = admin

  這樣在我們訪問localhost:9091/sys/actuator/的時候就會自動跳轉(zhuǎn)到安全登錄頁面,提示我們輸入用戶名和密碼。

 security:
 user:
  name: admin
  password: admin

運行項目

  我們的請求路徑由http://localhost:9091/sys/actuator/自動變成了http://localhost:9091/sys/login,輸入配置好的用戶名和密碼,就可以看到對應(yīng)的各種Api端口信息。

在這里插入圖片描述

配置關(guān)閉項目API端口

配置application.yml

  在endpoint后配置shutdown端口為true,默認情況下系統(tǒng)是關(guān)閉該端口,防止他人的惡意關(guān)閉項目,是出于對系統(tǒng)的一種保護行為。

endpoint:
  health:
  enabled: true
  show-details: always
  shutdown:
  enabled: true

注意:在這里我們利用cmd窗口以命令行的形式來模擬post請求,如果在瀏覽器直接請求的話會報錯,后臺會提示
Request method ‘GET' not supported。也就是說不支持get請求,我們需要用post。

命令行執(zhí)行post關(guān)閉指令

  在命令行中輸入:

$ curl -X POST localhost:9091/actuator/shutdown

  然后命令行提示:

{“message”:“Shutting down, bye…”}

  項目就處于關(guān)閉狀態(tài)了!

附:Actuator端口信息

類型 Api端口 描述
get auditevents 顯示應(yīng)用暴露的審計事件 (比如認證進入、訂單失敗)
get info 顯示應(yīng)用的基本信息
get health 顯示應(yīng)用的健康狀態(tài)
get metrics 顯示應(yīng)用多樣的度量信息
get loggers 顯示和修改配置的loggers
get logfile 返回log file中的內(nèi)容(如果logging.file或者logging.path被設(shè)置)
get httptrace 顯示Liquibase 數(shù)據(jù)庫遷移的纖細信息
get env 顯示當(dāng)前的環(huán)境特性
get flyway 顯示數(shù)據(jù)庫遷移路徑的詳細信息
get liquidbase 顯示數(shù)據(jù)庫遷移路徑的詳細信息
post shutdown 讓你逐步關(guān)閉應(yīng)用
get mappings 顯示所有的@RequestMapping路徑
get scheduledtasks 顯示應(yīng)用中的調(diào)度任務(wù)
get threaddump 執(zhí)行一個線程dump
get heapdump 返回一個GZip壓縮的JVM堆dump

附:SpringBoot自帶的健康指示器

指示器 內(nèi)容
ApplicationHealthIndicator none 永遠為UP
DataSourceHealthIndicator db 如果數(shù)據(jù)庫能連上,則為up,否則為down
DiskSpaceHealthIndicator diskSpace 如果可用空間大于閾值,則為up和可用磁盤空間,如果空間不足,則為down
JmsHealthIndicator jms 如果能連上消息代理,則為up,否則為down
MailHealthIndicator mail 如果能連上郵件服務(wù)器,則為up和郵件主機和端口,否則為down
MangoHealthIndicator mongo 如果能連上MangoDB服務(wù)器,則為up和MongoDB服務(wù)器版本,否則為down
RabbitHealthIndicator rabbit 如果能連上RabbitMQ服務(wù)器,則為up和MongoDB服務(wù)器版本,否則為down
RedisHealthIndicator redis 如果能連上Redis服務(wù)器,則為up和服務(wù)器版本,否則為down
SolrHealthIndicator solr 如果能連上Solr服務(wù)器,則為up和服務(wù)器版本,否則為down

總結(jié)

到此這篇關(guān)于一文搞懂并學(xué)會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件的文章就介紹到這了,更多相關(guān)spring boot 運行狀態(tài)監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA解決springboot熱部署失效問題(推薦)

    IDEA解決springboot熱部署失效問題(推薦)

    熱部署,就是在應(yīng)用正在運行的時候升級軟件,卻不需要重新啟動應(yīng)用。這篇文章主要介紹了IDEA解決springboot熱部署失效問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java中isAssignableFrom的用法詳解

    Java中isAssignableFrom的用法詳解

    下面小編就為大家?guī)硪黄狫ava中isAssignableFrom的用法詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java線程通訊的實現(xiàn)方法總結(jié)

    Java線程通訊的實現(xiàn)方法總結(jié)

    線程通訊指的是多個線程之間通過共享內(nèi)存或消息傳遞等方式來協(xié)調(diào)和同步它們的執(zhí)行,線程通訊的實現(xiàn)方式主要有以下兩種:共享內(nèi)存和消息傳遞,本文詳細介紹了Java線程是如何通訊的,感興趣的同學(xué)可以參考閱讀
    2023-05-05
  • SpringBoot深入分析運行原理與功能實現(xiàn)

    SpringBoot深入分析運行原理與功能實現(xiàn)

    我們發(fā)現(xiàn)springBoot程序開發(fā)比spring程序編寫起來容易的多。配置簡潔,依賴關(guān)系簡單,啟動運行容易。那么結(jié)下了我們我們就要思考一下入門程序中的這些功能是怎么實現(xiàn)的
    2022-09-09
  • Java IO流操作(PipeInputStream、SequenceInputStream、BufferedInputStream)

    Java IO流操作(PipeInputStream、SequenceInputStream、Buffered

    管道流主要用于線程間通信,分為管道輸入流(PipeInputStream)和管道輸出流(PipeOutputStream),本文介紹了如何通過管道流進行數(shù)據(jù)發(fā)送和接收,具有一定的參考價值,感興趣的可以了解一下
    2024-10-10
  • java使用hashMap緩存保存數(shù)據(jù)的方法

    java使用hashMap緩存保存數(shù)據(jù)的方法

    這篇文章主要介紹了java使用hashMap緩存保存數(shù)據(jù)的方法,結(jié)合實例形式簡單分析了java基于hashmap讀寫緩存數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下
    2016-08-08
  • Java 如何實現(xiàn)照片轉(zhuǎn)化為回憶中的照片

    Java 如何實現(xiàn)照片轉(zhuǎn)化為回憶中的照片

    本文主要介紹了可以對圖片進行色彩處理的Java工具類,讓圖片變成回憶中的畫面,主要將圖片做黑白與褐色的處理。代碼具有一定價值,感興趣的童鞋可以關(guān)注一下
    2021-11-11
  • Java語言求解完美數(shù)代碼分析

    Java語言求解完美數(shù)代碼分析

    這篇文章主要介紹了Java語言求解完美數(shù)代碼分析,具有一定參考價值,需要的朋友可以了解下。
    2017-12-12
  • SpringBoot環(huán)境搭建及第一個程序運行(小白教程)

    SpringBoot環(huán)境搭建及第一個程序運行(小白教程)

    這篇文章主要介紹了SpringBoot環(huán)境搭建及第一個程序運行,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java基于動態(tài)規(guī)劃法實現(xiàn)求最長公共子序列及最長公共子字符串示例

    Java基于動態(tài)規(guī)劃法實現(xiàn)求最長公共子序列及最長公共子字符串示例

    這篇文章主要介紹了Java基于動態(tài)規(guī)劃法實現(xiàn)求最長公共子序列及最長公共子字符串,簡單描述了動態(tài)規(guī)劃法的概念、原理,并結(jié)合實例形式分析了Java使用動態(tài)規(guī)劃法求最長公共子序列以及最長公共子字符串相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08

最新評論

贵阳市| 嘉定区| 梁山县| 志丹县| 临夏市| 会泽县| 奉贤区| 兴安盟| 沁源县| 涟源市| 嘉善县| 稷山县| 广宗县| 札达县| 南漳县| 息烽县| 汶川县| 札达县| 咸宁市| 高密市| 南通市| 黄平县| 勐海县| 崇州市| 高邮市| 肃宁县| 双城市| 龙江县| 大兴区| 历史| 信阳市| 曲周县| 启东市| 子长县| 阳曲县| 女性| 乌恰县| 韶山市| 甘谷县| 翁牛特旗| 讷河市|