国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

服務(wù)鏈路追蹤 —— SpringCloud Sleuth

這篇具有很好參考價(jià)值的文章主要介紹了服務(wù)鏈路追蹤 —— SpringCloud Sleuth。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Sleuth 簡(jiǎn)介

隨著業(yè)務(wù)的發(fā)展,系統(tǒng)規(guī)模變得越來(lái)越大,微服務(wù)拆分越來(lái)越細(xì),各微服務(wù)間的調(diào)用關(guān)系也越來(lái)越復(fù)雜??蛻舳苏?qǐng)求在后端系統(tǒng)中會(huì)經(jīng)過(guò)多個(gè)不同的微服務(wù)調(diào)用來(lái)協(xié)同產(chǎn)生最后的請(qǐng)求結(jié)果,幾平每一個(gè)請(qǐng)求都會(huì)形成一個(gè)復(fù)雜的分布式服務(wù)調(diào)用鏈路,在每條鏈路中任何一個(gè)依賴服務(wù)出現(xiàn)延遲超時(shí)或者錯(cuò)誤都有可能引起整個(gè)請(qǐng)求最后的失敗

這時(shí)需要一個(gè)能夠監(jiān)控微服務(wù)整個(gè)調(diào)用鏈的工具,跟蹤一個(gè)用戶請(qǐng)求的全過(guò)程(包括數(shù)據(jù)采集、數(shù)據(jù)傳輸、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)分析、數(shù)據(jù)可視化),捕獲這些跟蹤數(shù)據(jù),構(gòu)建微服務(wù)整個(gè)調(diào)用鏈的視圖,Spring Cloud Sleuth 就是這樣一個(gè)工具

服務(wù)追蹤系統(tǒng)的實(shí)現(xiàn)主要包括三個(gè)部分:

  • 埋點(diǎn)數(shù)據(jù)收集:負(fù)責(zé)在服務(wù)端進(jìn)行埋點(diǎn),以收集服務(wù)調(diào)用的上下文數(shù)據(jù)
  • 實(shí)時(shí)數(shù)據(jù)處理:負(fù)責(zé)將收集到的鏈路信息按照 Traccld 和 Spanld 進(jìn)行串聯(lián)和存儲(chǔ)
  • 數(shù)據(jù)鏈路展示:把處理后的服務(wù)調(diào)用數(shù)據(jù)按照調(diào)用鏈的形式展示出來(lái)

下面我們?cè)賮?lái)看一下 Sleuth 的核心概念

  • Trace:一組 Span 的集合,表示一條調(diào)用鏈路,例如,服務(wù) A 調(diào)用服務(wù) B,再調(diào)用服務(wù) C,A-B-C 鏈路就是一條 Trace,每個(gè)服務(wù)(例如 B)就是一個(gè)Span,如果在服務(wù) B 中再加入兩個(gè)線程,分別調(diào)用了 D、E,那么 D、E 就是 B 的子 Span
  • TraceId:全局跟蹤 ID,用來(lái)標(biāo)記一次完整服務(wù)調(diào)用,所以一次服務(wù)調(diào)用相關(guān)的 Span 的 Traceld 都是相同的
  • Span:基本工作單元,通過(guò) 64 位 ID 唯一標(biāo)識(shí),Span 還包含其他數(shù)據(jù)信息,比如摘要、時(shí)間藏事件、關(guān)鍵值注釋 (tags)、Span 的 ID 以及進(jìn)度 ID(通常是 IP 地址)
  • Id:Span 的 ID,只要做到一個(gè) Traceld 下唯一即可
  • Parentld:父 Span 的 ID,調(diào)用有層級(jí)關(guān)系,所以 Span 作為調(diào)用節(jié)點(diǎn)的存儲(chǔ)結(jié)構(gòu),也有層級(jí)關(guān)系
  • Annotation:基本標(biāo)注列表,用來(lái)及時(shí)記錄一個(gè)事件的存在,一個(gè)標(biāo)注可以理解成 Span 生命周期中重要時(shí)刻的數(shù)據(jù)快照,比如一個(gè)標(biāo)注中一般包含發(fā)生時(shí)刻(timestamp)、事件類型(value)、端點(diǎn)(endpoint)等信息,事件類型包括以下幾種:
    • cs(Clien Sent):客戶端發(fā)起一個(gè)請(qǐng)求,這個(gè) Annotion 注解描述 Span 的開始
    • sr(ServerReceived):服務(wù)端獲得請(qǐng)求并準(zhǔn)備開始處理它,sr 減去 cs 即網(wǎng)絡(luò)延遲時(shí)間
    • ss(Server Sent):表明請(qǐng)求處理的完成(請(qǐng)求返回客戶端),ss 減去 sr 即服務(wù)端需要的處理請(qǐng)求時(shí)間
    • cr(Client Received):表明 Span 的結(jié)束,客戶端成功接收到服務(wù)端的回復(fù),cr 減去 cs 即客戶端從服務(wù)端獲取回復(fù)的所有時(shí)間

ZipKin 簡(jiǎn)介

Zipkin 是一個(gè)開源的分布式追蹤系統(tǒng),用于對(duì)服務(wù)間的調(diào)用鏈路進(jìn)行監(jiān)控追蹤。在微服務(wù)架購(gòu)下,用戶的一個(gè)請(qǐng)求可能涉及很多個(gè)后臺(tái)服務(wù)間的調(diào)用。Zipkin 可以追蹤(trace)調(diào)用鏈路、收集在各個(gè)微服務(wù)上所花的時(shí)間等信息,并上報(bào)到 Zipkin 服務(wù)器

Zipkin 提供可插拔數(shù)據(jù)存儲(chǔ)方式:In-Memory、MySQL、Cassandra 以及 Elasticsearch,為了方便在開發(fā)環(huán)境直接采用 In-Memory 方式進(jìn)行存儲(chǔ),生產(chǎn)數(shù)據(jù)量大的情況則推薦使用 Elasticsearch

Zipkin 主要由四個(gè)核心組件組成:

  • Collector:接收或收集各應(yīng)用傳輸?shù)臄?shù)據(jù)
  • Storage:存儲(chǔ)接收或收集過(guò)來(lái)的數(shù)據(jù),當(dāng)前支持 Memory、MySQL、Cassandra、ElasticSearch 等,默認(rèn)存儲(chǔ)在內(nèi)存中
  • API(Query):負(fù)責(zé)查詢 Storage 中存儲(chǔ)的數(shù)據(jù),提供簡(jiǎn)單的 JSON API 獲取數(shù)據(jù),主要提供給 Web UI 使用
  • UI:官方默認(rèn)提供的一個(gè)圖形用戶界面

Zipkin 以 Trace 結(jié)構(gòu)表示對(duì)一次請(qǐng)求的追蹤,把每個(gè) Trace 拆分為若于個(gè)有依賴關(guān)系的 Span,可以把每個(gè)處理請(qǐng)求的服務(wù)理解為一個(gè) Span。Zipkin 除了可以查看 Span 的依賴關(guān)系之外,還以瀑布圖的形式顯示每個(gè) Span 的耗時(shí)情況,可以清晰地看到各個(gè)服務(wù)的性能狀況。打開每個(gè) Span,還有更詳細(xì)的數(shù)據(jù)以鍵值對(duì)的形式呈現(xiàn),而且這些數(shù)據(jù)可以在裝備應(yīng)用的時(shí)候自行添加

Zipkin 下載地址:https://repo1.maven.org/maven2/io/zipkin/zipkin-server/

這里選擇 zipkin-server-2.24.3-exec.jar 版本,既然是一個(gè) jar 包,那么直接使用 java 命令運(yùn)行即可,訪問(wèn):http://localhost:9411/zipkin/ 可查看控制臺(tái)

如果使用 MySQL 進(jìn)行數(shù)據(jù)存儲(chǔ),需要事先搭建好 MySQL 數(shù)據(jù)庫(kù),執(zhí)行建表腳本,可在 GitHub 獲?。篽ttps://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql

啟動(dòng) ZipKin,連接 MySQL,具體啟動(dòng)命令如下:

java -jar .\zipkin-server-2.24.3-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_DB=test_db --MYSQL_USER=root --MYSQL_PASS=123

Spring Cloud Sleuth 整合 ZipKin

在 server-01 和 server-02 項(xiàng)目分別添加依賴

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

在 server-01 和 server-02 項(xiàng)目分別添加配置

spring:
  zipkin:
    base-url: http://localhost:9411
    enabled: true
  sleuth:
    enabled: true

如果 spring-cloud-sleuth-zipkin 位于類路徑中,則該應(yīng)用程序會(huì)生成并收集與 Zipkin 兼容的 Trace,默認(rèn)情況下,應(yīng)用程序通過(guò) HTTP 將 ace 信息發(fā)送到本地主機(jī)(端口 9411)上的 ZipKin 服務(wù)器,可以通過(guò)設(shè)置 spring.zipkin.base-url 來(lái)配置服務(wù)的地址

在 server-01 使用 Feign 調(diào)用 server-02 接口

// server-01
@Slf4j
@RestController
public class TestCon {

    @Autowired
    private Server02FeignClient server02FeignClient;

    @GetMapping("/test/getConfigByFeign")
    public void getConfigByFeign() {
        server02FeignClient.getConfig();
    }
}

// server-02
@Slf4j
@RestController
public class TestCon {

    @Value("${test.value}")
    private String testValue;

    @Value("${spring.application.name}")
    private String applicationName;

    @Value("${server.port}")
    private String port;

    @GetMapping("/test/getConfig")
    public void getConfig() {
        log.info("testValue: {} by {}-{}", testValue, applicationName, port);
    }
}

查看 ZipKin 控制臺(tái),選擇 Dependencies 選項(xiàng)卡,點(diǎn)擊 RUN QUERY 查看具體請(qǐng)求鏈路,選擇 Find a trace 選項(xiàng)卡,單擊 RUN QUERY,可查看具體的請(qǐng)求信息文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-711774.html

到了這里,關(guān)于服務(wù)鏈路追蹤 —— SpringCloud Sleuth的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Cloud【分組消費(fèi)、為什么需要鏈路追蹤 、Spring Cloud Sleuth是什么、微服務(wù)集成Sleuth實(shí)現(xiàn)鏈路打標(biāo)】(十二)

    Spring Cloud【分組消費(fèi)、為什么需要鏈路追蹤 、Spring Cloud Sleuth是什么、微服務(wù)集成Sleuth實(shí)現(xiàn)鏈路打標(biāo)】(十二)

    ? 目錄 消息驅(qū)動(dòng)_分組消費(fèi) 分布式請(qǐng)求鏈路追蹤_為什么需要鏈路追蹤?

    2024年02月14日
    瀏覽(18)
  • 【分布式鏈路追蹤技術(shù)】sleuth+zipkin

    【分布式鏈路追蹤技術(shù)】sleuth+zipkin

    目錄 1.概述 2.搭建演示工程 3.sleuth 4.zipkin 5.插拔式存儲(chǔ) 5.1.存儲(chǔ)到MySQL中 5.2.用MQ來(lái)流量削峰 6.聯(lián)系作者 當(dāng)采用分布式架構(gòu)后,一次請(qǐng)求會(huì)在多個(gè)服務(wù)之間流轉(zhuǎn),組成單次調(diào)用鏈的服務(wù)往往都分散在不同的服務(wù)器上。這就會(huì)帶來(lái)一個(gè)問(wèn)題: 故障難以溯源。 發(fā)起請(qǐng)求,然后請(qǐng)求

    2024年02月04日
    瀏覽(25)
  • 分布式鏈路追蹤專欄,Spring Cloud Sleuth:分布式鏈路追蹤之通信模型設(shè)計(jì)

    分布式鏈路追蹤專欄,Spring Cloud Sleuth:分布式鏈路追蹤之通信模型設(shè)計(jì)

    Spring Cloud Sleuth ?賦予分布式跟蹤的 ?Spring Boot? 自動(dòng)配置的一鍵解決方案。 Spring Cloud Sleuth? 是基于 ?Brave? 的封裝,也是很多公司采用開源加自研的最佳解決方案。 那么從作為架構(gòu)師或者技術(shù)專家如何去借鑒優(yōu)秀框架的設(shè)計(jì)理念和思想,本次? Chat? 將開啟作者既分布式鏈路

    2024年01月19日
    瀏覽(27)
  • 【微服務(wù)】springcloud集成skywalking實(shí)現(xiàn)全鏈路追蹤

    目錄 一、前言 二、環(huán)境準(zhǔn)備 2.1 軟件環(huán)境 2.2?微服務(wù)模塊 2.3 環(huán)境搭建

    2024年02月03日
    瀏覽(16)
  • 十六、Spring Cloud Sleuth 分布式請(qǐng)求鏈路追蹤

    十六、Spring Cloud Sleuth 分布式請(qǐng)求鏈路追蹤

    1、為什么出出現(xiàn)這個(gè)技術(shù)?需要解決哪些問(wèn)題 2、是什么? 官網(wǎng): https://github.com/spring-cloud/spring-cloud-sleuth spring-cloud-sleuth 提供了一套完整的分布式鏈路追蹤的解決方案 ,并且兼容支持了 zipkin (展現(xiàn)) 3、解決 1、下載運(yùn)行zipkin 下載jar包到本地 https://repo1.maven.org/maven2/io/zipkin/

    2024年02月12日
    瀏覽(26)
  • SpringCloud搭建微服務(wù)之Micrometer分布式鏈路追蹤

    SpringCloud搭建微服務(wù)之Micrometer分布式鏈路追蹤

    由于Spring Cloud Sleuth最新版本只支持Spring Boot 2.7.x,核心項(xiàng)目已經(jīng)遷移到Micrometer Traceing項(xiàng)目,Spring Boot 3.x版本要實(shí)現(xiàn)分布式鏈路追蹤需要集成Micrometer。更多詳情可以參閱Micrometer官網(wǎng) 本文將以Spring Boot 3.2.x和Spring Cloud 2023.0.x版本和JDK 17實(shí)現(xiàn)分布式鏈路追蹤,有需要了解Spring Bo

    2024年03月22日
    瀏覽(24)
  • 鏈路追蹤在開源SpringBoot/SpringCloud微服務(wù)框架的實(shí)踐

    前期內(nèi)容導(dǎo)讀: Java開源RSA/AES/SHA1/PGP/SM2/SM3/SM4加密算法介紹 Java開源AES/SM4/3DES對(duì)稱加密算法介紹及其實(shí)現(xiàn) Java開源AES/SM4/3DES對(duì)稱加密算法的驗(yàn)證說(shuō)明 Java開源RSA/SM2非對(duì)稱加密算法對(duì)比介紹 Java開源RSA非對(duì)稱加密算法實(shí)現(xiàn) Java開源SM2非對(duì)稱加密算法實(shí)現(xiàn) Java開源接口微服務(wù)代碼框架

    2024年02月09日
    瀏覽(15)
  • 【業(yè)務(wù)功能109】微服務(wù)-springcloud-springboot-Skywalking-鏈路追蹤-監(jiān)控

    【業(yè)務(wù)功能109】微服務(wù)-springcloud-springboot-Skywalking-鏈路追蹤-監(jiān)控

    skywalking 是一個(gè)apm系統(tǒng),包含監(jiān)控,追蹤,并擁有故障診斷能力的 分布式 系統(tǒng) ??Skywalking是由國(guó)內(nèi)開源愛好者吳晟開源并提交到Apache孵化器的產(chǎn)品,它同時(shí)吸收了Zipkin /Pinpoint /CAT 的設(shè)計(jì)思路。特點(diǎn)是:支持多種插件,UI功能較強(qiáng),支持非侵入式埋點(diǎn)。目前使用廠商最多,版

    2024年02月08日
    瀏覽(25)
  • 鏈路追蹤在開源SpringBoot/SpringCloud微服務(wù)框架的最簡(jiǎn)實(shí)踐

    前期內(nèi)容導(dǎo)讀: Java開源RSA/AES/SHA1/PGP/SM2/SM3/SM4加密算法介紹 Java開源AES/SM4/3DES對(duì)稱加密算法介紹及其實(shí)現(xiàn) Java開源AES/SM4/3DES對(duì)稱加密算法的驗(yàn)證說(shuō)明 Java開源RSA/SM2非對(duì)稱加密算法對(duì)比介紹 Java開源RSA非對(duì)稱加密算法實(shí)現(xiàn) Java開源SM2非對(duì)稱加密算法實(shí)現(xiàn) Java開源接口微服務(wù)代碼框架

    2024年02月12日
    瀏覽(18)
  • springcloud sleuth分布式請(qǐng)求鏈路跟蹤

    springcloud sleuth分布式請(qǐng)求鏈路跟蹤

    在微服務(wù)框架中,一個(gè)由客戶端發(fā)起的請(qǐng)求在后端系統(tǒng)中會(huì)經(jīng)過(guò)多個(gè)不同的的服務(wù)節(jié)點(diǎn)調(diào)用來(lái)協(xié)同產(chǎn)生最后的請(qǐng)求結(jié)果,每一個(gè)前段請(qǐng)求都會(huì)形成一條復(fù)雜的分布式服務(wù)調(diào)用鏈路,鏈路中的任何一環(huán)出現(xiàn)高延時(shí)或錯(cuò)誤都會(huì)引起整個(gè)請(qǐng)求最后的失敗. Spring Cloud Sleuth提供了一套完

    2024年01月16日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包