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

SpringBoot Actuator跟蹤HTTP請(qǐng)求和響應(yīng)的方法

 更新時(shí)間:2025年08月19日 09:22:43   作者:yifanghub  
Spring Boot Actuator 是 Spring Boot 提供的生產(chǎn)級(jí)監(jiān)控和管理模塊,旨在幫助開(kāi)發(fā)者實(shí)時(shí)監(jiān)控應(yīng)用狀態(tài)、收集運(yùn)行時(shí)指標(biāo),并提供一系列管理端點(diǎn),本文給大家介紹了SpringBoot Actuator跟蹤HTTP請(qǐng)求和響應(yīng)的方法,需要的朋友可以參考下

一、Spring Boot Actuator簡(jiǎn)介

什么是Spring Boot Actuator?Spring Boot Actuator 是 Spring Boot 提供的生產(chǎn)級(jí)監(jiān)控和管理模塊,旨在幫助開(kāi)發(fā)者實(shí)時(shí)監(jiān)控應(yīng)用狀態(tài)、收集運(yùn)行時(shí)指標(biāo),并提供一系列管理端點(diǎn)(Endpoints),它的關(guān)鍵特性是提供了一系列的Web接口,通過(guò)它們能夠快速診斷問(wèn)題、優(yōu)化性能,并確保應(yīng)用健康運(yùn)行。

Actuator 的核心功能

  • 1.1 應(yīng)用健康檢查
    /health 端點(diǎn):檢查應(yīng)用關(guān)鍵組件(如數(shù)據(jù)庫(kù)、磁盤(pán)、消息隊(duì)列)是否正常。
  • 1.2 性能指標(biāo)監(jiān)控
    /metrics 端點(diǎn):提供 JVM 內(nèi)存、CPU 使用率、HTTP 請(qǐng)求統(tǒng)計(jì)等指標(biāo)。
  • 1.3 動(dòng)態(tài)日志調(diào)整
    /loggers 端點(diǎn):運(yùn)行時(shí)修改日志級(jí)別(如臨時(shí)開(kāi)啟 DEBUG 日志排查問(wèn)題)。
  • 1.4 請(qǐng)求追蹤(HTTP Trace)
    /httptrace 端點(diǎn)(Spring Boot 2.x):記錄最近請(qǐng)求的 URL、方法、響應(yīng)時(shí)間等。
  • 1.5 線(xiàn)程與堆棧分析
    /threaddump 端點(diǎn):導(dǎo)出當(dāng)前所有線(xiàn)程狀態(tài),用于診斷死鎖或性能瓶頸。
    /heapdump 端點(diǎn):生成 JVM 堆內(nèi)存快照。

二、開(kāi)啟Http接口監(jiān)控

在一般的分布式架構(gòu)中,我們一般有查看API接口的請(qǐng)求/響應(yīng)的需求,而Spring Boot Actuator通過(guò)其httptrace端點(diǎn)即能夠返回基本的HTTP跟蹤信息,本文介紹該功能的使用

環(huán)境:SpringBoot 2.7.6

1.為SpringBoot項(xiàng)目添加依賴(lài)

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

2.添加yml配置

management:
    endpoint:
        health:
            show-details: always
    trace:
        http:
            enabled: true # 啟用HTTP追蹤
            include:
    endpoints:
        jmx:
            exposure:
                include: '*'
        web:
            exposure:
                include: '*'# 暴露端點(diǎn),這里開(kāi)啟所有默認(rèn)Web端點(diǎn)
    server:
        port: 8081 # 這里訪(fǎng)問(wèn)/actuator 端點(diǎn)的端口

此時(shí),我們本地訪(fǎng)問(wèn)/actuator端點(diǎn)的地址為:http://127.0.0.1/actuator,返回結(jié)果如下

我們可以看到返回了很多Actuator的端點(diǎn)接口路徑,但并沒(méi)有發(fā)現(xiàn)httptrace模塊,要開(kāi)啟接口監(jiān)控功能我們還要注冊(cè)一個(gè)HttpTraceRepository類(lèi)型的Bean

3.聲明存儲(chǔ)Bean

Spring Boot Actuator 默認(rèn)會(huì)把最近100次的HTTP請(qǐng)求記錄到內(nèi)存中,對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)是InMemoryHttpTraceRepository

package com.example.springhttptrace.config;

import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class HttpActuatorConfig {
    @Bean
    InMemoryHttpTraceRepository inMemoryHttpTraceRepository() {
        return new InMemoryHttpTraceRepository() ;
    }
}

完成上面類(lèi)配置,啟動(dòng)項(xiàng)目并訪(fǎng)問(wèn):訪(fǎng)問(wèn)http://localhost:8081/actuator,可以看到:

注意:Spirngboot2.x版本可以通過(guò)注入 InMemoryHttpTraceRepository來(lái)開(kāi)啟httptrace,但Spirngboot3.x版本中是不能直接注入InMemoryHttpTraceRepository 開(kāi)啟,需要使用httpExchanges開(kāi)啟http trace,官方解釋生產(chǎn)環(huán)境可能存在一些性能問(wèn)題,官方建議使用 zipKinOpenTelemetry等開(kāi)源框架

4.寫(xiě)測(cè)試API接口

@Controller
public class BasicController {

    // http://127.0.0.1:8080/hello?name=lisi
    @RequestMapping("/hello")
    @ResponseBody
    public String hello(@RequestParam(name = "name", defaultValue = "unknown user") String name) {
        return "Hello " + name;
    }

    // http://127.0.0.1:8080/user
    @RequestMapping("/user")
    @ResponseBody
    public User user() {
        User user = new User();
        user.setName("theonefx");
        user.setAge(666);
        return user;
    }

    // http://127.0.0.1:8080/save_user?name=newName&age=11
    @RequestMapping("/save_user")
    @ResponseBody
    public String saveUser(User u) {
        return "user will save: name=" + u.getName() + ", age=" + u.getAge();
    }

    @ModelAttribute
    public void parseUser(@RequestParam(name = "name", defaultValue = "unknown user") String name
            , @RequestParam(name = "age", defaultValue = "12") Integer age, User user) {
        user.setName("zhangsan");
        user.setAge(18);
    }
}

訪(fǎng)問(wèn):http://127.0.0.1:8080/hello?name=lisi
返回結(jié)果后,再訪(fǎng)問(wèn):http://localhost:8081/actuator/httptrace,結(jié)果如下:

其中:

  • timestamp,請(qǐng)求發(fā)生的時(shí)間戳(UTC 格式)
  • principal,認(rèn)證用戶(hù)信息(未認(rèn)證時(shí)為 null)
  • session,會(huì)話(huà) ID(未啟用會(huì)話(huà)時(shí)為 null)
  • request,請(qǐng)求對(duì)象信息
  • response,響應(yīng)對(duì)象信息
  • timeTaken,請(qǐng)求處理耗時(shí)(毫秒),未記錄時(shí)為 null 值為 150 表示處理耗時(shí) 150ms

總結(jié)

Spring Boot Actuator的HTTP Trace功能為監(jiān)控HTTP接口提供了便捷的解決方案,它開(kāi)箱即用地記錄請(qǐng)求方法、URL、狀態(tài)碼和耗時(shí)等基礎(chǔ)信息,適合快速定位問(wèn)題。然而,該功能默認(rèn)不記錄請(qǐng)求體/響應(yīng)體等關(guān)鍵數(shù)據(jù),內(nèi)存存儲(chǔ)僅保留100條記錄,且高頻請(qǐng)求下可能產(chǎn)生性能開(kāi)銷(xiāo),生產(chǎn)環(huán)境建議優(yōu)先考慮更專(zhuān)業(yè)的APM工具。

以上就是SpringBoot Actuator跟蹤HTTP請(qǐng)求和響應(yīng)的方法的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot Actuator跟蹤HTTP的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JAVA8 lambda表達(dá)式權(quán)威教程

    JAVA8 lambda表達(dá)式權(quán)威教程

    本文主要給大家講解Java8中最重要的一個(gè)特征之一lambda表達(dá)式,本文通過(guò)實(shí)例圖文解說(shuō)給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-05-05
  • Spring Data JPA帶條件分頁(yè)查詢(xún)實(shí)現(xiàn)原理

    Spring Data JPA帶條件分頁(yè)查詢(xún)實(shí)現(xiàn)原理

    這篇文章主要介紹了Spring Data JPA帶條件分頁(yè)查詢(xún)實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Mybatis如何傳入多個(gè)參數(shù)(實(shí)體類(lèi)型和基本類(lèi)型)

    Mybatis如何傳入多個(gè)參數(shù)(實(shí)體類(lèi)型和基本類(lèi)型)

    這篇文章主要介紹了Mybatis如何傳入多個(gè)參數(shù)(實(shí)體類(lèi)型和基本類(lèi)型),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • FeignClient如何共享Header及踩坑過(guò)程記錄

    FeignClient如何共享Header及踩坑過(guò)程記錄

    這篇文章主要介紹了FeignClient如何共享Header及踩坑過(guò)程記錄,
    2022-03-03
  • Java報(bào)錯(cuò)Non-terminating?decimal?expansion解決分析

    Java報(bào)錯(cuò)Non-terminating?decimal?expansion解決分析

    這篇文章主要為大家介紹了Java報(bào)錯(cuò)Non-terminating?decimal?expansion解決方案及原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼

    Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼

    這篇文章主要介紹了Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Java實(shí)現(xiàn)的簡(jiǎn)單字符串反轉(zhuǎn)操作示例

    Java實(shí)現(xiàn)的簡(jiǎn)單字符串反轉(zhuǎn)操作示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的簡(jiǎn)單字符串反轉(zhuǎn)操作,結(jié)合實(shí)例形式分別描述了java遍歷逆序輸出以及使用StringBuffer類(lèi)的reverse()方法兩種字符串反轉(zhuǎn)操作技巧,需要的朋友可以參考下
    2018-08-08
  • java智能問(wèn)答圖靈機(jī)器人AI接口(聚合數(shù)據(jù))

    java智能問(wèn)答圖靈機(jī)器人AI接口(聚合數(shù)據(jù))

    這篇文章主要介紹了java智能問(wèn)答圖靈機(jī)器人AI接口(聚合數(shù)據(jù)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • JavaWeb踩坑記錄之項(xiàng)目訪(fǎng)問(wèn)不到html文件

    JavaWeb踩坑記錄之項(xiàng)目訪(fǎng)問(wèn)不到html文件

    這篇文章主要給大家介紹了關(guān)于JavaWeb踩坑記錄之項(xiàng)目訪(fǎng)問(wèn)不到html文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaWeb具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 基于Java手寫(xiě)一個(gè)通用限流任務(wù)執(zhí)行器

    基于Java手寫(xiě)一個(gè)通用限流任務(wù)執(zhí)行器

    調(diào)用第三方API最怕什么,那就是怕被限流,今天分享一個(gè)自制的限流任務(wù)執(zhí)行器,能幫你輕松控制請(qǐng)求頻率,還能自動(dòng)重試失敗任務(wù),指數(shù)退避不添亂,快跟隨小編一起學(xué)習(xí)起來(lái)吧
    2026-04-04

最新評(píng)論

连州市| 扎鲁特旗| 太白县| 张家口市| 昭平县| 安庆市| 濮阳市| 德格县| 拉孜县| 富源县| 邻水| 周口市| 应城市| 比如县| 泉州市| 乌审旗| 荃湾区| 岢岚县| 汉中市| 尖扎县| 大港区| 儋州市| 长宁区| 将乐县| 花莲县| 平阳县| 措美县| 赤峰市| 昭觉县| 财经| 景宁| 友谊县| 澄迈县| 陇南市| 合山市| 玉树县| 赣榆县| 津市市| 卓尼县| 宝鸡市| 金秀|