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

深入探究SpringBoot中的Sleuth用法

 更新時(shí)間:2023年07月06日 09:53:44   作者:程序媛-徐師姐  
Sleuth是一個(gè)分布式跟蹤系統(tǒng),用于跟蹤應(yīng)用程序中的請(qǐng)求和操作,在本文中,我們將探討SpringBoot中的Sleuth是什么,以及如何使用它來(lái)跟蹤應(yīng)用程序中的請(qǐng)求和操作,感興趣的小伙伴跟著小編一起來(lái)探討吧

什么是 Sleuth?

Sleuth 是一個(gè)分布式跟蹤系統(tǒng),用于跟蹤應(yīng)用程序中的請(qǐng)求和操作。它可以幫助我們了解應(yīng)用程序的結(jié)構(gòu)和性能,并定位問題的根本原因。Sleuth 可以與 Zipkin 等分布式跟蹤系統(tǒng)配合使用,從而提供更全面的應(yīng)用程序跟蹤和分析功能。

Sleuth 在 Spring Boot 中提供了一個(gè)便捷的集成方式。它可以輕松地跟蹤應(yīng)用程序中的請(qǐng)求和操作,并將跟蹤信息記錄到日志文件中。這使得我們可以更輕松地了解應(yīng)用程序的結(jié)構(gòu)和性能,并快速定位問題的根本原因。

Sleuth 的核心概念

在使用 Sleuth 之前,我們需要了解一些核心概念:

  • Trace(跟蹤):一個(gè) Trace 表示一個(gè)請(qǐng)求或操作的完整的調(diào)用鏈,從客戶端發(fā)起請(qǐng)求開始,到服務(wù)端響應(yīng)請(qǐng)求結(jié)束。
  • Span(跨度):一個(gè) Span 表示一個(gè)請(qǐng)求或操作的一部分,它包含了一些有用的信息,如開始時(shí)間、結(jié)束時(shí)間、操作名稱等。
  • Trace ID(跟蹤 ID):一個(gè) Trace ID 是一個(gè)唯一的標(biāo)識(shí)符,它用于將一組 Span 關(guān)聯(lián)在一起,形成一個(gè)完整的 Trace。
  • Span ID(跨度 ID):一個(gè) Span ID 是一個(gè)唯一的標(biāo)識(shí)符,它用于標(biāo)識(shí)一個(gè) Span。

在 Sleuth 中,每個(gè)請(qǐng)求或操作都會(huì)生成一個(gè) Trace,并且每個(gè) Trace 包含多個(gè) Span。每個(gè) Span 包含一個(gè)唯一的 Span ID,并與一個(gè) Trace ID 相關(guān)聯(lián)。通過 Trace ID 和 Span ID,我們可以將多個(gè) Span 關(guān)聯(lián)在一起,形成一個(gè)完整的 Trace。

使用 Sleuth

要使用 Sleuth,我們需要將 Sleuth 依賴添加到項(xiàng)目中。在 Maven 項(xiàng)目中,可以在 pom.xml 文件中添加以下依賴:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

在Gradle項(xiàng)目中,可以在 build.gradle 文件中添加以下依賴:

implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'

添加依賴后,Sleuth 就會(huì)自動(dòng)啟用,并開始跟蹤應(yīng)用程序中的請(qǐng)求和操作。Sleuth 會(huì)自動(dòng)為每個(gè)請(qǐng)求或操作生成一個(gè) Trace,并為每個(gè) Trace 中的每個(gè) Span 生成一個(gè)唯一的 Span ID。

默認(rèn)情況下,Sleuth 會(huì)將 Trace ID 和 Span ID 添加到日志中,以便我們可以輕松地跟蹤應(yīng)用程序中的請(qǐng)求和操作。例如,下面是一個(gè)包含 Trace ID 和 Span ID 的日志:

2021-09-01 12:00:00.000 [my-service,0123456789abcdef,0123456789abcdef,true] TRACE [MyController] - Handling request

在上面的例子中,日志中包含了一個(gè) Trace ID(0123456789abcdef)和一個(gè) Span ID(0123456789abcdef),它們分別與一個(gè)名為 my-service 的服務(wù)相關(guān)聯(lián)。

自定義 Sleuth 配置

在使用 Sleuth 時(shí),我們可以通過配置文件或編程方式進(jìn)行自定義配置。以下是一些常用的自定義配置方式:

配置 Trace 和 Span 的名稱

默認(rèn)情況下,Sleuth 會(huì)為每個(gè) Trace 和Span 分別使用應(yīng)用程序的名稱和隨機(jī)生成的 ID。如果需要自定義 Trace 和 Span 的名稱,可以在 application.properties(或 application.yaml)文件中添加以下配置:

spring.sleuth.sampler.probability=1.0
spring.application.name=my-custom-app-name
spring.sleuth.span-name-regex=(?<controller>MyController)

上面的配置將會(huì)將 Trace 的名稱設(shè)置為 my-custom-app-name,將所有包含 MyController 的 Span 設(shè)置為 MyController。同時(shí),spring.sleuth.sampler.probability=1.0 確保 Sleuth 對(duì)所有請(qǐng)求和操作進(jìn)行跟蹤。

配置 Sleuth 的 Sampler

在實(shí)際的生產(chǎn)環(huán)境中,我們可能需要對(duì)請(qǐng)求和操作進(jìn)行采樣,以避免 Sleuth 產(chǎn)生過多的跟蹤數(shù)據(jù)。在 Sleuth 中,采樣是通過 Sampler 實(shí)現(xiàn)的。默認(rèn)情況下,Sleuth 使用一個(gè)隨機(jī)采樣器,它對(duì) 10% 的請(qǐng)求進(jìn)行采樣。

如果需要自定義采樣器,可以在配置文件中添加以下配置:

spring.sleuth.sampler.type=RATE_LIMITED
spring.sleuth.sampler.rate=0.5

上面的配置將會(huì)將采樣器設(shè)置為 RATE_LIMITED,它會(huì)根據(jù)請(qǐng)求速率限制采樣率。具體而言,它將對(duì) 50% 的請(qǐng)求進(jìn)行采樣。

使用 MDC(Mapped Diagnostic Context)

在實(shí)際的生產(chǎn)環(huán)境中,我們可能需要將 Trace 和 Span 的信息傳遞給 Logback 或 Log4j2 等日志框架。為了實(shí)現(xiàn)這一點(diǎn),Sleuth 提供了一個(gè) MDC(Mapped Diagnostic Context)實(shí)現(xiàn),它可以將 Trace 和 Span 的信息添加到日志中。

要使用 MDC,我們需要在 application.properties(或 application.yaml)文件中添加以下配置:

logging.pattern.level=%X{traceId} %X{spanId} %5p [${spring.zipkin.service.name:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] [%t] %logger{5} - %msg%n

上面的配置將在日志模式中添加 Trace 和 Span 的信息。這樣,我們就可以輕松地跟蹤應(yīng)用程序中的請(qǐng)求和操作,并將跟蹤信息添加到日志中。

總結(jié)

本文介紹了 Spring Boot 中的 Sleuth,它是一個(gè)分布式跟蹤系統(tǒng),用于跟蹤應(yīng)用程序中的請(qǐng)求和操作。我們了解了 Sleuth 的核心概念,包括 Trace、Span、Trace ID 和 Span ID,并探討了如何使用 Sleuth。

在實(shí)際的生產(chǎn)環(huán)境中,我們可以通過自定義配置來(lái)使用 Sleuth。例如,我們可以配置 Trace 和 Span 的名稱、采樣器類型和速率,以及使用 MDC 將 Trace 和 Span 的信息添加到日志中。這些功能可以幫助我們更輕松地了解應(yīng)用程序的結(jié)構(gòu)和性能,并快速定位問題的根本原因。

到此這篇關(guān)于深入探究SpringBoot中的Sleuth用法的文章就介紹到這了,更多相關(guān)SpringBoot Sleuth內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?Cloud?+?Nacos?+?Seata整合過程(分布式事務(wù)解決方案)

    Spring?Cloud?+?Nacos?+?Seata整合過程(分布式事務(wù)解決方案)

    Seata 是一款開源的分布式事務(wù)解決方案,致力于在微服務(wù)架構(gòu)下提供高性能和簡(jiǎn)單易用的分布式事務(wù)服務(wù),這篇文章主要介紹了Spring?Cloud?+?Nacos?+?Seata整合過程(分布式事務(wù)解決方案),需要的朋友可以參考下
    2022-03-03
  • SpringBoot基于RabbitMQ實(shí)現(xiàn)消息延時(shí)隊(duì)列的方案

    SpringBoot基于RabbitMQ實(shí)現(xiàn)消息延時(shí)隊(duì)列的方案

    在很多的業(yè)務(wù)場(chǎng)景中,延時(shí)隊(duì)列可以實(shí)現(xiàn)很多功能,此類業(yè)務(wù)中,一般上是非實(shí)時(shí)的,需要延遲處理的,需要進(jìn)行重試補(bǔ)償?shù)?本文給大家介紹了SpringBoot基于RabbitMQ實(shí)現(xiàn)消息延遲隊(duì)列的方案,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2024-04-04
  • spring AOP定義AfterThrowing增加處理實(shí)例分析

    spring AOP定義AfterThrowing增加處理實(shí)例分析

    這篇文章主要介紹了spring AOP定義AfterThrowing增加處理,結(jié)合實(shí)例形式分析了spring面向切面AOP定義AfterThrowing相關(guān)實(shí)現(xiàn)步驟與操作技巧,需要的朋友可以參考下
    2020-01-01
  • Java實(shí)現(xiàn)隨機(jī)出題,10道10以內(nèi)加減法計(jì)算代碼實(shí)例

    Java實(shí)現(xiàn)隨機(jī)出題,10道10以內(nèi)加減法計(jì)算代碼實(shí)例

    這篇文章主要介紹了Java實(shí)現(xiàn)隨機(jī)出題,10道10以內(nèi)加減法計(jì)算,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • SpringBoot 如何使用RestTemplate來(lái)調(diào)用接口

    SpringBoot 如何使用RestTemplate來(lái)調(diào)用接口

    這篇文章主要介紹了SpringBoot 如何使用RestTemplate來(lái)調(diào)用接口方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • ActiveMQ消息隊(duì)列技術(shù)融合Spring過程解析

    ActiveMQ消息隊(duì)列技術(shù)融合Spring過程解析

    這篇文章主要介紹了ActiveMQ消息隊(duì)列技術(shù)融合Spring過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • springboot 單文件上傳的實(shí)現(xiàn)步驟

    springboot 單文件上傳的實(shí)現(xiàn)步驟

    這篇文章主要介紹了springboot實(shí)現(xiàn)單文件上傳的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2021-02-02
  • 一個(gè)@Component注解引發(fā)的大坑

    一個(gè)@Component注解引發(fā)的大坑

    這篇文章主要介紹了一個(gè)@Component注解引發(fā)的大坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 解析spring cloud ouath2中的Eureka

    解析spring cloud ouath2中的Eureka

    這篇文章主要介紹了spring cloud ouath2中的Eureka,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作

    java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作

    這篇文章主要介紹了java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作,主要是使用ffmpeg命令進(jìn)行轉(zhuǎn)換,該工具類主要是為了將各類音頻轉(zhuǎn)為wav標(biāo)準(zhǔn)格式,其中可以調(diào)節(jié)采樣率、聲道數(shù)等指標(biāo),依賴maven環(huán)境,需要的朋友可以參考下
    2021-10-10

最新評(píng)論