Spring Boot 中的監視器是什么?有什么作用?

前言:

監聽器相信熟悉 Spring、Spring Boot 的都知道,但是監視器又是什么?估計很多人一臉懵的狀態,本篇分享一下 Spring Boot 的監視器。

Spring Boot 系列文章傳送門

Spring Boot 啟動流程源碼分析(2)

Spring Boot 啟動流程源碼分析(2)

Spring Boot 自動配置實現原理(源碼分析)

Spring Boot 自定義 starter 啟動器

Spring Boot 事件監聽機制工作原理

Spring Boot 事件監聽機制實戰【自定義 Spring Boot 事件監聽】

Spring Boot 的監視器是什么?

Spring Boot 的監視器一種特殊的應用程序或組件,用于監控和管理整個應用程序的運行狀態和性能,它提供了一種可視化的方式,可以實時跟蹤和監視應用程序的各種指標,例如響應時間、CPU使用率、內存使用情況等,Spring Boot 提供了一些內置的監視器功能,可以集成到應用程序中,Spring Boot 監視器功能由各種監視器監視器 Bean 實現,比如 Spring Boot Actuator。

什么是 Spring Boot Actuator?

Spring Boot Actuator 是一個用于監控和管理 Spring Boot 應用程序的模塊,它提供了許多端點,可以通過 HTTP 請求來訪問這些端點,來獲取應用程序的各種信息,如健康狀況、度量指標、配置信息等,Actuator還可以通過配置開啟或關閉特定的端點,并提供自定義的端點。

Spring Boot Actuator 可以做什么?

  1. 指標監控:實時跟蹤應用程序的各種指標,例如響應時間、CPU使用率、內存使用情況等,以便進行性能優化和故障排查。
  2. 健康檢查:檢查應用程序的健康狀況,包括是否正常運行(非常實用)。
  3. 日志管理:記錄應用程序的日志信息,包括錯誤日志、警告日志、調試日志等,以便進行性能優化和故障排查。。
  4. 端點監控:監控應用程序中的各種端點(HTTP接口),包括請求數量、請求時間、響應時間等。

Spring Boot Actuator 使用演示

在 pom.xml 中引入 management.endpoints.web.exposure.include=*
組件,如下:

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

在程序的配置文件中啟用 Actuator

#暴露所有的端點
management.endpoints.web.exposure.include=*
  • 號的配置是允許所有的 Actuator 端點通過 HTTP 請求訪問,生產環境不建議這樣配置。

啟動應用程序獲取程序的健康情況:http://localhost:port/actuator/health

結果如下:

在這里插入圖片描述
符合預期,我們的程序是健康的。

自定義 Endpoint

注解說明

  • @Endpoint:可通過JMX和web應用程序訪問。
  • @JmxEndpoint:只能通過 JMX 訪問。
  • @WebEndpoint:只能通過 WEB 應用訪問。
  • @ReadOperation:相當于 GET 請求。
  • @WriteOperation:相當于 POST 請求。
  • @DeleteOperation:相當于 DELETE 請求。

有時候我們需要自定義自己的端點,我們可以通過 @Endpoint注解 + @ReadOperation、@WriteOperation、@DeleteOperation 注解來實現自定義端點,代碼如下:

@Component
@Endpoint(id = "myActuatorEndpoint")
public class MyActuatorController {@ReadOperationpublic Map<String, Object> get() {Map<String, Object> map = new HashMap<>();map.put("httpMethod", HttpMethod.GET.toString());return map;}@WriteOperationpublic Map<String, Object> post() {Map<String, Object> map = new HashMap<>();map.put("httpMethod", HttpMethod.POST.toString());return map;}@DeleteOperationpublic Map<String, Object> delete() {Map<String, Object> map = new HashMap<>();map.put("httpMethod", HttpMethod.DELETE.toString());return map;}
}

GET 方式測試結果:
在這里插入圖片描述
結果符合預期,另外兩種方式這里不做測試了,有興趣的可以自己去測試一下。

自定義端口

我們還可以自定義監控的端口

#自定義端口
management.server.port=8082

如有不正確的地方請各位指出糾正。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40646.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40646.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40646.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Apache DolphinScheduler 與 AWS 的 EMR/Redshift 集成實踐分享

引言 這篇文章將給大家講解關于DolphinScheduler與AWS的EMR和Redshift的集成實踐&#xff0c;通過本文希望大家能更深入地了解AWS智能湖倉架構&#xff0c;以及DolphinScheduler在實際應用中的重要性。 AWS智能湖倉架構 首先&#xff0c;我們來看一下AWS經典的智能湖倉架構圖…

【第20章】MyBatis-Plus邏輯刪除支持

文章目錄 前言一、邏輯刪除的工作原理二、支持的數據類型三、使用方法1.配置全局邏輯刪除屬性2.在實體類中使用 TableLogic 注解 四、常見問題解答1. 如何處理插入操作&#xff1f;2. 刪除接口自動填充功能失效怎么辦&#xff1f; 五、實戰1. 全局配置2. 添加TableLogic3. 自動…

高考選專業,興趣與就業前景該如何平衡?

從高考結束的那一刻開始&#xff0c;有些家長和學生就已經變得焦慮了&#xff0c;因為他們不知道成績出來的時候學生應該如何填報志愿&#xff0c;也不知道選擇什么樣的專業&#xff0c;畢竟大學里面的專業豐富多彩&#xff0c;如何選擇確實是一門學問&#xff0c;而對于學生們…

Oracle的RECYCLEBIN回收站:輕松恢復誤刪對象

目錄 Oracle的RECYCLEBIN回收站&#xff1a;輕松恢復誤刪對象一、概念二、工作原理三、使用方法1 查看回收站中的對象2 恢復回收站中的對象2.1 恢復表&#xff08;TABLE&#xff09;2.2 恢復索引&#xff08;INDEX&#xff09;2.3 恢復視圖&#xff08;VIEW&#xff09;2.4 恢復…

樂清網站建設規劃書

樂清是位于浙江省溫州市的一個縣級市&#xff0c;擁有悠久的歷史和豐富的文化底蘊。隨著互聯網的快速發展&#xff0c;網站建設成為推動樂清經濟和文化發展的重要手段。因此&#xff0c;我們認為有必要制定一個全面的樂清網站建設規劃書&#xff0c;以促進樂清的經濟繁榮和文化…

東芝 TB5128FTG 強大性能的步進電機驅動器

TB5128FTG它以高精度和高效能為設計理念&#xff0c;采用 PWM 斬波方法&#xff0c;并內置時鐘解碼器。通過先進的 BiCD 工藝制造&#xff0c;這款驅動器提供高達 50V 和 5.0A 的輸出額定值&#xff0c;成為廣泛應用場景中的強勁解決方案。 主要特性 TB5128FTG 擁有眾多確保高…

SAP PS學習筆記01 - PS概述,創建Project和WBS

本章開始學習PS&#xff08;Project System&#xff09;。 1&#xff0c;PS的概述 PS&#xff08;Project System&#xff09;是SAP企業資源規劃系統中的一個關鍵模塊&#xff0c;主要用于項目管理。 它提供了一個全面的框架來規劃、控制和執行項目&#xff0c;涵蓋了從項目啟…

【Express】自定義錯誤碼和通用返回對象

自定義錯誤碼&#xff1a; // 自定義錯誤 const {formatResponse} require("./tool");class ServiceError extends Error {/**** param message 自定義錯誤信息* param code 自定義錯誤碼*/constructor(message, code) {super(message);this.code code;}/*** 將錯…

ZeroMQ最全面試題解讀(3萬字長文)

目錄 解釋ZeroMQ是什么,它的主要用途是什么? ZeroMQ支持哪些通信模式? 描述一下ZeroMQ中的“消息”和“消息幀” 如何在C++中初始化一個ZeroMQ上下文? 在ZeroMQ中,如何創建一個套接字并將其綁定到特定端口? 解釋什么是“管道模式”(Pipe Pattern) 說明如何使用Z…

Spring的三種注入方式的優缺點分析

在 Spring 中&#xff0c;提供了三種依賴注入&#xff08;也被稱之為 "對象注入"&#xff0c;"屬性裝配"等&#xff09;的方式&#xff0c;這篇博客我們來分析一下這三種方式各有哪些優缺點。 一、屬性注入 優點 簡潔&#xff0c;使用方便。 缺點 ? 只…

競賽選題 卷積神經網絡手寫字符識別 - 深度學習

文章目錄 0 前言1 簡介2 LeNet-5 模型的介紹2.1 結構解析2.2 C1層2.3 S2層S2層和C3層連接 2.4 F6與C5層 3 寫數字識別算法模型的構建3.1 輸入層設計3.2 激活函數的選取3.3 卷積層設計3.4 降采樣層3.5 輸出層設計 4 網絡模型的總體結構5 部分實現代碼6 在線手寫識別7 最后 0 前言…

C++內存的一些知識點

一、內存分區 在C中&#xff0c;內存主要分為以下幾個區域&#xff1a; 代碼區&#xff1a;存放函數體的二進制代碼。 全局/靜態存儲區&#xff1a;存放全局變量和靜態變量&#xff0c;這些變量在程序的整個運行期間都存在。常量存儲區&#xff1a;存放常量&#xff0c;這些值…

學懂C#編程:實用方法——string字符串指定連接符拼接之 string.Join 的詳細用法

在C#中&#xff0c;string.Join 方法用于將一個字符串數組或集合中的元素連接成一個單一的字符串&#xff0c;并在每個元素之間插入指定的分隔符。這個方法非常有用&#xff0c;特別是在需要將多個字符串合并成一個字符串時。以下是 string.Join 方法的詳細用法&#xff1a; 方…

WPF UI 界面布局 魔術棒 文字筆記識別 技能提升 布局功能擴展與自定義 繼承Panel的對象,測量與排列 系列七

應用開發第一步 功能分類&#xff1a;頁面上的功能區域劃分。。。。需求分析 業務邏輯 數據流 功能模塊 UI/UX 編碼 測試 發布 功能開發與布局 不用顯式的方式設定元素的尺寸 不使用屏幕坐標來指定位置 Grid 功能最強大&#xff0c;布局最靈活的容器…

卷積神經網絡:目標檢測的黃金鑰匙

標題&#xff1a;卷積神經網絡&#xff1a;目標檢測的黃金鑰匙 卷積神經網絡&#xff08;CNN&#xff09;是深度學習中用于處理具有網格結構數據&#xff08;如圖像&#xff09;的強大工具。在目標檢測任務中&#xff0c;CNN不僅提升了檢測的準確性&#xff0c;還極大地推動了…

開發個人Go-ChatGPT--5 模型管理 (一)

開發個人Go-ChatGP–5 模型管理 (一) 背景 開發一個chatGPT的網站&#xff0c;后端服務如何實現與大模型的對話&#xff1f;是整個項目中開發困難較大的點。 如何實現上圖的聊天對話功能&#xff1f;在開發后端的時候&#xff0c;如何實現stream的響應呢&#xff1f;本文就…

Vue-Router4.0 報“Cannot read property ‘forEach‘ of undefined”

Vue-Router4.0在創建路由時 報“Cannot read property ‘forEach‘ of undefined” 解決辦法 將路由規則名稱更改為routes&#xff0c;否則報錯 import { createWebHashHistory, createRouter } from vue-router; // 創建路由規定 const routes [{path: /login,name: login,co…

Linux Docker 防火墻設置 放通 MySQL(3306) Redis(6379) 端口

Linux Docker 防火墻設置 放通 MySQL(3306) Redis(6379) 端口&#xff0c;使用firewalld 防火墻或iptables &#xff0c;因此嘗試重新啟動 firewalld 服務&#xff0c;添加防火墻規則&#xff0c;并檢查防火墻狀態。以下是詳細步驟&#xff1a; 1. 啟動 firewalld 服務 首先啟…

qt opencv 應用舉例

在Qt中使用OpenCV可以實現各種圖像處理和計算機視覺任務。以下是一些Qt與OpenCV聯合應用的具體舉例&#xff1a; 1. 圖像讀取與顯示 讀取圖像&#xff1a;使用OpenCV的imread函數可以方便地讀取各種格式的圖像文件&#xff0c;如.bmp、.jpg、.png等。這個函數返回一個Mat對象…

【Unity數據交互】Unity中使用二進制進行數據持久化

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 專欄交流&#x1f9e7;&…