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

深入探究SpringBoot中的Sleuth用法

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

什么是 Sleuth?

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

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

Sleuth 的核心概念

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

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

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

使用 Sleuth

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

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

在Gradle項目中,可以在 build.gradle 文件中添加以下依賴:

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

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

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

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

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

自定義 Sleuth 配置

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

配置 Trace 和 Span 的名稱

默認(rèn)情況下,Sleuth 會為每個 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)

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

配置 Sleuth 的 Sampler

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

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

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

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

使用 MDC(Mapped Diagnostic Context)

在實際的生產(chǎn)環(huán)境中,我們可能需要將 Trace 和 Span 的信息傳遞給 Logback 或 Log4j2 等日志框架。為了實現(xiàn)這一點(diǎn),Sleuth 提供了一個 MDC(Mapped Diagnostic Context)實現(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)用程序中的請求和操作,并將跟蹤信息添加到日志中。

總結(jié)

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

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

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

相關(guān)文章

  • 詳解Java語言中的抽象類與繼承

    詳解Java語言中的抽象類與繼承

    這篇文章主要為大家詳細(xì)介紹了Java語言中的抽象類與繼承的相關(guān)資料,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定的幫助,感興趣的小伙伴快跟隨小編一起了解一下
    2022-10-10
  • JPA中JpaRepository接口的使用方式

    JPA中JpaRepository接口的使用方式

    這篇文章主要介紹了JPA中JpaRepository接口的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java實現(xiàn)微信紅包分配規(guī)則

    Java實現(xiàn)微信紅包分配規(guī)則

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)仿微信紅包分配規(guī)則,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • java線程并發(fā)semaphore類示例

    java線程并發(fā)semaphore類示例

    Java 5.0里新加了4個協(xié)調(diào)線程間進(jìn)程的同步裝置,它們分別是Semaphore, CountDownLatch, CyclicBarrier和Exchanger,本例主要介紹Semaphore,Semaphore是用來管理一個資源池的工具,可以看成是個通行證
    2014-01-01
  • 使用java為pdf添加書簽的方法(pdf書簽制作)

    使用java為pdf添加書簽的方法(pdf書簽制作)

    下載一些pdf格式的電子書沒有書簽,用JAVA寫了一個小工具,將特定格式的文本解析成為書簽,然后保存到pdf格式中
    2014-02-02
  • 使用mybatis切片實現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程

    使用mybatis切片實現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程

    數(shù)據(jù)權(quán)限控制需要對查詢出的數(shù)據(jù)進(jìn)行篩選,對業(yè)務(wù)入侵最少的方式就是利用mybatis或者數(shù)據(jù)庫連接池的切片對已有業(yè)務(wù)的sql進(jìn)行修改,本文給大家介紹了使用mybatis切片實現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程,需要的朋友可以參考下
    2024-07-07
  • mybatis-plus返回查詢總記錄數(shù)方式

    mybatis-plus返回查詢總記錄數(shù)方式

    這篇文章主要介紹了mybatis-plus返回查詢總記錄數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java HttpClient-Restful工具各種請求高度封裝提煉及總結(jié)

    Java HttpClient-Restful工具各種請求高度封裝提煉及總結(jié)

    這篇文章主要介紹了Java HttpClient-Restful工具各種請求高度封裝提煉及總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java?mapToInt()方法使用小結(jié)

    Java?mapToInt()方法使用小結(jié)

    本文介紹了Java?8中Stream?API中的mapToInt()方法,它可以將對象流轉(zhuǎn)換為整型流,從而方便地進(jìn)行求和、求平均值、求最大值/最小值等操作,具有一定的參考價值,感興趣的可以了解一下
    2025-11-11
  • spring-gateway filters添加自定義過濾器實現(xiàn)流程分析(可插拔)

    spring-gateway filters添加自定義過濾器實現(xiàn)流程分析(可插拔)

    這篇文章主要介紹了spring-gateway filters添加自定義過濾器實現(xiàn)流程分析(可插拔),本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-05-05

最新評論

漳平市| 抚顺市| 时尚| 德阳市| 临沧市| 兖州市| 新营市| 镇原县| 晴隆县| 镇巴县| 修水县| 名山县| 岳阳县| 博湖县| 凌云县| 兴和县| 罗城| 鄯善县| 黄山市| 永丰县| 阿克苏市| 云龙县| 如东县| 新丰县| 手机| 章丘市| 会泽县| 临江市| 成武县| 仁布县| 尼勒克县| 林州市| 钦州市| 万山特区| 宁阳县| 稻城县| 广平县| 安新县| 额济纳旗| 双鸭山市| 罗田县|