欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

閑言碎語(yǔ):

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

背景

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

Actuator介紹

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

Rest方法來(lái)查看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的非安全驗(yàn)證方式。
  在這里指定actuator對(duì)外暴露的RestApi端口為9091,Spring1.5x默認(rèn)采用了Actuator安全驗(yàn)證,為了能夠在瀏覽器上展示效果,不做安全驗(yàn)證,將其設(shè)置為false。

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

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

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

運(yùn)行項(xiàng)目

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

請(qǐng)求路徑: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進(jìn)行權(quán)限控制,從而保護(hù)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

  這樣在我們?cè)L問(wèn)localhost:9091/sys/actuator/的時(shí)候就會(huì)自動(dòng)跳轉(zhuǎn)到安全登錄頁(yè)面,提示我們輸入用戶名和密碼。

 security:
 user:
  name: admin
  password: admin

運(yùn)行項(xiàng)目

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

在這里插入圖片描述

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

配置application.yml

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

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

注意:在這里我們利用cmd窗口以命令行的形式來(lái)模擬post請(qǐng)求,如果在瀏覽器直接請(qǐng)求的話會(huì)報(bào)錯(cuò),后臺(tái)會(huì)提示
Request method ‘GET' not supported。也就是說(shuō)不支持get請(qǐng)求,我們需要用post。

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

  在命令行中輸入:

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

  然后命令行提示:

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

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

附:Actuator端口信息

類型 Api端口 描述
get auditevents 顯示應(yīng)用暴露的審計(jì)事件 (比如認(rèn)證進(jìn)入、訂單失敗)
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ù)庫(kù)遷移的纖細(xì)信息
get env 顯示當(dāng)前的環(huán)境特性
get flyway 顯示數(shù)據(jù)庫(kù)遷移路徑的詳細(xì)信息
get liquidbase 顯示數(shù)據(jù)庫(kù)遷移路徑的詳細(xì)信息
post shutdown 讓你逐步關(guān)閉應(yīng)用
get mappings 顯示所有的@RequestMapping路徑
get scheduledtasks 顯示應(yīng)用中的調(diào)度任務(wù)
get threaddump 執(zhí)行一個(gè)線程dump
get heapdump 返回一個(gè)GZip壓縮的JVM堆dump

附:SpringBoot自帶的健康指示器

指示器 內(nèi)容
ApplicationHealthIndicator none 永遠(yuǎn)為UP
DataSourceHealthIndicator db 如果數(shù)據(jù)庫(kù)能連上,則為up,否則為down
DiskSpaceHealthIndicator diskSpace 如果可用空間大于閾值,則為up和可用磁盤空間,如果空間不足,則為down
JmsHealthIndicator jms 如果能連上消息代理,則為up,否則為down
MailHealthIndicator mail 如果能連上郵件服務(wù)器,則為up和郵件主機(jī)和端口,否則為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é)會(huì)使用SpringBoot的Actuator運(yùn)行狀態(tài)監(jiān)控組件的文章就介紹到這了,更多相關(guān)spring boot 運(yùn)行狀態(tài)監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用maven deploy上傳本地jar至私服的方法

    利用maven deploy上傳本地jar至私服的方法

    這篇文章主要介紹了利用maven deploy上傳本地jar至私服的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 在SpringBoot中無(wú)縫整合Dubbo的實(shí)現(xiàn)過(guò)程

    在SpringBoot中無(wú)縫整合Dubbo的實(shí)現(xiàn)過(guò)程

    微服務(wù)架構(gòu)已經(jīng)成為現(xiàn)代應(yīng)用開(kāi)發(fā)的熱門趨勢(shì),而Dubbo作為一款強(qiáng)大的分布式服務(wù)框架,與Spring?Boot的結(jié)合是構(gòu)建高性能微服務(wù)應(yīng)用的理想選擇,本文將詳細(xì)介紹如何在SpringBoot中無(wú)縫整合Dubbo,需要的朋友可以參考下
    2024-01-01
  • Java編程實(shí)現(xiàn)直接插入排序代碼示例

    Java編程實(shí)現(xiàn)直接插入排序代碼示例

    這篇文章主要介紹了Java編程實(shí)現(xiàn)直接插入排序代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • try-cache-finally讀取文件錯(cuò)誤try-with-resources使用方法

    try-cache-finally讀取文件錯(cuò)誤try-with-resources使用方法

    這篇文章主要為大家介紹了try-cache-finally讀取文件錯(cuò)誤try-with-resources使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 使用Spring Initializr方式如何快速構(gòu)建Spring Boot項(xiàng)目

    使用Spring Initializr方式如何快速構(gòu)建Spring Boot項(xiàng)目

    Spring lnitializr是一個(gè)Web應(yīng)用,它提供了一個(gè)基本的項(xiàng)目結(jié)構(gòu),能夠幫助我們快速構(gòu)建一個(gè)基礎(chǔ)的Spring Boot項(xiàng)目,本文分步驟講解如何使用Spring Initializr方式構(gòu)建Spring Boot項(xiàng)目,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • java后臺(tái)調(diào)用HttpURLConnection類模擬瀏覽器請(qǐng)求實(shí)例(可用于接口調(diào)用)

    java后臺(tái)調(diào)用HttpURLConnection類模擬瀏覽器請(qǐng)求實(shí)例(可用于接口調(diào)用)

    這篇文章主要介紹了java后臺(tái)調(diào)用HttpURLConnection類模擬瀏覽器請(qǐng)求實(shí)例,該實(shí)例可用于接口調(diào)用,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • 詳解jvm對(duì)象的創(chuàng)建和分配

    詳解jvm對(duì)象的創(chuàng)建和分配

    這篇文章主要介紹了jvm對(duì)象的創(chuàng)建和分配的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • J2SE基礎(chǔ)之命令行中編寫(xiě)第一個(gè) Hello World

    J2SE基礎(chǔ)之命令行中編寫(xiě)第一個(gè) Hello World

    “Hello World”程序指的是只在計(jì)算機(jī)屏幕上輸出“Hello, World!”(意為“世界,你好!”)這行字符串的計(jì)算機(jī)程序。hello world作為所有編程語(yǔ)言的起始階段,占據(jù)著無(wú)法改變的地位,所有的編程第一步就在于此了!經(jīng)典之中的經(jīng)典!hello world!
    2016-05-05
  • 詳解SpringBoot如何優(yōu)雅的處理免登錄接口

    詳解SpringBoot如何優(yōu)雅的處理免登錄接口

    在項(xiàng)目開(kāi)發(fā)過(guò)程中,會(huì)有很多API接口不需要登錄就能直接訪問(wèn),比如公開(kāi)數(shù)據(jù)查詢之類的,常規(guī)處理方法基本是 使用攔截器或過(guò)濾器,攔截需要認(rèn)證的請(qǐng)求路徑,本文介紹一個(gè)更優(yōu)雅的方法自定義注解的方式,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • java 打印一字符串,并在main()方法內(nèi)調(diào)用它

    java 打印一字符串,并在main()方法內(nèi)調(diào)用它

    編寫(xiě)一個(gè)方法(名字自定,但要符合Java編碼規(guī)范),方法內(nèi)打印一字符串,并在main()方法內(nèi)調(diào)用它。
    2017-02-02

最新評(píng)論