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

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

這篇具有很好參考價(jià)值的文章主要介紹了【分布式鏈路追蹤技術(shù)】sleuth+zipkin。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

目錄

1.概述

2.搭建演示工程

3.sleuth

4.zipkin

5.插拔式存儲

5.1.存儲到MySQL中

5.2.用MQ來流量削峰

6.聯(lián)系作者


1.概述

當(dāng)采用分布式架構(gòu)后,一次請求會在多個(gè)服務(wù)之間流轉(zhuǎn),組成單次調(diào)用鏈的服務(wù)往往都分散在不同的服務(wù)器上。這就會帶來一個(gè)問題:

故障難以溯源。

發(fā)起請求,然后請求報(bào)錯(cuò),到底是調(diào)用鏈中哪一環(huán)出了問題?很難以定位。這時(shí)候就需要用到鏈路追蹤技術(shù)了。所謂的鏈路追蹤技術(shù),也就是想辦法讓分布式系統(tǒng)中的單次請求的鏈路調(diào)用成為可被追蹤的,便于在出現(xiàn)故障的時(shí)候進(jìn)行快速的定位溯源。

目前有兩套實(shí)現(xiàn)思路:

  • 基于日志來實(shí)現(xiàn),常用到的有Sleuth、zipkin

  • 基于agent來實(shí)現(xiàn),常用到的有skywaiking

本文講解的是其中基于日志實(shí)現(xiàn)的sleuth以及其配套的可視化套件zipkin。

關(guān)于分布式鏈路追蹤作者上文講過詳細(xì)的概論:

https://bugman.blog.csdn.net/article/details/135175596?spm=1001.2014.3001.5502

2.搭建演示工程

本次用于演示的工程很簡單,用spring cloud來搭建三個(gè)服務(wù),一個(gè)app服務(wù)用來提供服務(wù),一個(gè)鑒權(quán)中心用來登錄以及鑒權(quán),一個(gè)bis服務(wù)用來聚合:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端
在bis中調(diào)用鑒權(quán)中心來登錄獲取token,然后校驗(yàn)token,校驗(yàn)通過后調(diào)用app提供的服務(wù):

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

spring cloud的成體系的文章,在博主的另一個(gè)專欄,從0開始一步步深入淺出(該系列登上過2023年的新星計(jì)劃):

3.sleuth

依賴:

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

去訪問bis,會看到:

bis的日志:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

AuthenticationCenter的日志:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

APP的日志:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

我想到這里很多讀者會有個(gè)疑問。

問:

sleuth這么保證一個(gè)鏈路上的traceID是相同的?

答:

當(dāng)一個(gè)請求進(jìn)入 Spring Cloud 的微服務(wù)系統(tǒng)時(shí),Sleuth 會生成一個(gè)唯一的 Trace ID。如果請求是從另一個(gè)使用 Sleuth 的服務(wù)傳入的,Sleuth 會提取并使用該服務(wù)傳入的 Trace ID。Sleuth 集成了這些通信協(xié)議,如HTTP協(xié)議,并在服務(wù)間調(diào)用時(shí)自動將 Trace ID 添加到 HTTP 請求的頭部、消息的元數(shù)據(jù)等中。

4.zipkin

光有了日志,進(jìn)行問題排查還是要一條條的翻,還是很繁瑣。所以配套出現(xiàn)了可視化套件,由推特開發(fā)的——zipkin。其能對標(biāo)準(zhǔn)opentracing格式的日志進(jìn)行收集和展示。zipkin采用的標(biāo)準(zhǔn)的CS架構(gòu),client向server發(fā)數(shù)據(jù)。

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

服務(wù)端:

服務(wù)端是一個(gè)jar包,直接跑起來就可以,下載地址:

Central Repository: io/zipkin/zipkin-server

客戶端:

依賴:

<dependency>
? ?<groupId>org.springframework.cloud</groupId>
? ?<artifactId>spring-cloud-starter-zipkin</artifactId>
? ?<version>2.2.1.RELEASE</version>
</dependency>

配置:

#zipkin server地址
spring.zipkin.base-url=http://localhost:9411/
#client向server發(fā)送數(shù)據(jù)的方式,web,http報(bào)文
spring.zipkin.sender.type=web

效果:

zipkin的啟動日志里已經(jīng)清晰的告訴了Web界面的訪問地址是多少:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

訪問127.0.0.1:9411/可以看到:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

點(diǎn)進(jìn)鏈路可以看到單次請求的詳細(xì)內(nèi)容:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

5.插拔式存儲

zipkin從各個(gè)client中收集到的server上的數(shù)據(jù)存到哪兒去?默認(rèn)是將數(shù)據(jù)存儲在內(nèi)存中,除此之外zipkin還支持多種數(shù)據(jù)的存儲方式,如mysql、ES等,根據(jù)場景需要可自行切換。

5.1.存儲到MySQL中

要存儲到MySQL中首先當(dāng)然是要先建表,zipkin在項(xiàng)目文件中自帶了mysql的建表腳本:

https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql

server的源碼工程的配置文件中可以看到,存儲默認(rèn)是內(nèi)存,參數(shù)有默認(rèn)值,但是支持傳參來設(shè)置:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

所以在用java -jar啟動的時(shí)候可以通過跟參數(shù)的方式來切換存儲類型:

java -jar zipkin-server-2.20.1-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=localhost --MYSOL_TCP_PORT=3306 --MYSQL_USER=root --MYSQL_PASS=admin --MYSQL_DB=zipkin

這樣數(shù)據(jù)就會存進(jìn)MySQL中來進(jìn)行持久化了。

5.2.用MQ來流量削峰

zipkin支持多種數(shù)據(jù)的存儲方式,如mysql、ES等,默認(rèn)是將數(shù)據(jù)存儲在內(nèi)存中。

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

server端:

從配置文件中可以看到,zipkin server支持Kafka、rabbitMQ等多種MQ,具體配置是用啟動傳參的方式來配置的:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

想用哪種MQ,直接去配置即可,這里以rabbitMQ為例:

java -jar zipkin-server-2.20.1-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=localhost --MYSOL-TCP-PORT=3306 --MYSOL_USER=root --MYSQL_PASS=admin --MYSQL_DB=zipkin --RABBIT_ADDRESSES=10.1.2.10:5672 --RABBIT_USER=quest --RABBIT_PASSWORD=guest --RABBIT_VIRTUAL_HOST=/ --RABBIT_QUEUE=zipkin

client端:

client端增加以下關(guān)于mq的配置:

#zipkin server地址
spring.zipkin.base-url=http://localhost:9411/
#client向server發(fā)送數(shù)據(jù)的方式,rabbitmq
spring.zipkin.sender.type=rabbit
#隊(duì)列名稱
spring.zipkin.rabbitmq.queue=zipkin
#服務(wù)器IP、端口號、賬戶名、密碼
spring.rabbitmq.host=10.1.2.10
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
#虛擬主機(jī)地址
spring.rabbitmq.virtual-host=/
#是否開啟發(fā)布重試
spring.rabbitmq.listener.direct.retry.enabled=true
#最大重試次數(shù)
spring.rabbitmq.listener.direct.retry.max-attempts=5
#重試間隔時(shí)間
spring.rabbitmq.listener.direct.retry.initial-interval=5000
#是否開啟消費(fèi)者重試
spring.rabbitmq.listener.simple.retry.enabled=true
#最大重試次數(shù)
spring.rabbitmq.listener.simple.retry.max-attempts=5
#最大間隔時(shí)間
spring.rabbitmq.listener.simple.retry.initial-interval=5000

6.聯(lián)系作者

公眾號:

博主會在上面成體系的輸出后端干貨。

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端

商務(wù)合作、各種交流:

【分布式鏈路追蹤技術(shù)】sleuth+zipkin,java-ee,分布式,java,后端文章來源地址http://www.zghlxwxcb.cn/news/detail-765247.html

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

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

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

相關(guān)文章

  • 十六、Spring Cloud Sleuth 分布式請求鏈路追蹤

    十六、Spring Cloud Sleuth 分布式請求鏈路追蹤

    1、為什么出出現(xiàn)這個(gè)技術(shù)?需要解決哪些問題 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)
  • 【Docker】Docker+Zipkin+Elasticsearch+Kibana部署分布式鏈路追蹤

    【Docker】Docker+Zipkin+Elasticsearch+Kibana部署分布式鏈路追蹤

    點(diǎn)擊跳轉(zhuǎn):Docker安裝MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常見服務(wù)全套(質(zhì)量有保證,內(nèi)容詳情) 本文主要討論在Elasticsearch和Kibana安裝好合適版本的前提下,繼續(xù)整合Zipkin。 一般的,它們的工作過程是這樣的:Spring Cloud微服務(wù)把調(diào)用鏈路的日志發(fā)送給Zipkin,Zipkin把數(shù)據(jù)發(fā)

    2024年02月14日
    瀏覽(29)
  • 【JAVA】分布式鏈路追蹤技術(shù)概論

    【JAVA】分布式鏈路追蹤技術(shù)概論

    目錄 1.概述 2.基于日志的實(shí)現(xiàn) 2.1.實(shí)現(xiàn)思想 2.2.sleuth 2.2.可視化 3.基于agent的實(shí)現(xiàn) 4.聯(lián)系作者 當(dāng)采用分布式架構(gòu)后,一次請求會在多個(gè)服務(wù)之間流轉(zhuǎn),組成單次調(diào)用鏈的服務(wù)往往都分散在不同的服務(wù)器上。這就會帶來一個(gè)問題: 故障難以溯源。 發(fā)起請求,然后請求報(bào)錯(cuò),到底

    2024年02月04日
    瀏覽(25)
  • 【SkyWalking】分布式環(huán)境下的鏈路追蹤技術(shù)

    【SkyWalking】分布式環(huán)境下的鏈路追蹤技術(shù)

    SkyWalking解決了什么問題?-----》微服務(wù)架構(gòu)中,各個(gè)服務(wù)之間調(diào)用關(guān)系錯(cuò)綜復(fù)雜,所以需要一個(gè)能捋清復(fù)雜情況下調(diào)用關(guān)系的解決方案,這就是SkyWalking,目前最強(qiáng)大的鏈路追蹤技術(shù); 要使用SkyWalking,需要給我們的項(xiàng)目中綁定一個(gè)agent探針,綁定后,SkyWalking就會將你項(xiàng)目整體

    2023年04月08日
    瀏覽(26)
  • day09-SpringCloud Sleuth+Zipkin-鏈路追蹤

    官網(wǎng):spring-cloud/spring-cloud-sleuth: Distributed tracing for spring cloud (github.com) 分布式鏈路追蹤之Spring Cloud Sleuth+Zipkin最全教程! - bucaichenmou - 博客園 (cnblogs.com) 在微服務(wù)框架中,一個(gè)由客戶端發(fā)起的請求在后端系統(tǒng)中會經(jīng)過多個(gè)不同的的服務(wù)節(jié)點(diǎn)調(diào)用,來協(xié)同產(chǎn)生最后的請求結(jié)果,

    2024年02月08日
    瀏覽(27)
  • 云事業(yè)群CTO線技術(shù)晉升考核機(jī)試題-分布式專題-F 分布式服務(wù)鏈路動態(tài)追蹤

    作者:田超凡 1 分布式服務(wù)鏈路動態(tài)追蹤產(chǎn)生的背景 答:在分布式微服務(wù)系統(tǒng)中,隨著業(yè)務(wù)的發(fā)展,系統(tǒng)的規(guī)模也越來越大,服務(wù)和服務(wù)之間的調(diào)用關(guān)系也越來越復(fù)雜。比如一次HTTP請求可能會在多個(gè)服務(wù)和服務(wù)之間進(jìn)行多次組合調(diào)用,在這個(gè)過程中,當(dāng)一個(gè)服務(wù)出現(xiàn)故障,

    2024年02月16日
    瀏覽(60)
  • 微服務(wù)sleuth+zipkin---鏈路追蹤+nacos配置中心

    微服務(wù)sleuth+zipkin---鏈路追蹤+nacos配置中心

    目錄 1.分布式鏈路追蹤 1.1.鏈路追蹤Sleuth介紹 1.2.如何完成sleuth 1.3.zipkin服務(wù)器 2.配置中心 2.1.常見配置中心組件 2.2.微服務(wù)集群共享一個(gè)配置文件 2.2.1實(shí)時(shí)刷新--配置中心數(shù)據(jù) 2.2.2.手動寫一個(gè)實(shí)時(shí)刷新的配置類 ----刷新配置文件 2.3.多個(gè)微服務(wù)公用一個(gè)配置 繼?微服務(wù)Gateway網(wǎng)關(guān)

    2024年02月17日
    瀏覽(16)
  • 【微服務(wù)】springcloud集成sleuth與zipkin實(shí)現(xiàn)鏈路追蹤

    目錄 一、前言 二、分布式鏈路調(diào)用問題 三、鏈路追蹤中的幾個(gè)概念

    2024年01月22日
    瀏覽(16)
  • springcloud sleuth分布式請求鏈路跟蹤

    springcloud sleuth分布式請求鏈路跟蹤

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

    2024年01月16日
    瀏覽(30)
  • SpringCloud——分布式請求鏈路跟蹤Sleuth

    SpringCloud——分布式請求鏈路跟蹤Sleuth

    SpringCloud從F版已不需要自己構(gòu)建Zipkin Server,只需要調(diào)用jar包即可 https://dl.bintray.com/oenzipkin/maven/io/zipkin/java/zipkin-server/ 下載:zipkin-server-2.12.9-exec.jar 運(yùn)行:java -jar zipkin-server-2.12.9-exec.jar 瀏覽器訪問: ================================================================================ 一條鏈路通過

    2024年02月16日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包