dubbo服務(wù)整合zipkin詳解
去年一直有想法將openTracing整合進(jìn)自己的dubbo服務(wù)的想法。但是zipkin brave 對(duì) dubbo的支持,沒(méi)有更新到最新版本,所以一直沒(méi)有行動(dòng)。
目前zipkin支持的語(yǔ)言,以及框架如下圖:具體可以參考官方網(wǎng)址


其中brave library 是一個(gè)java項(xiàng)目,提供了對(duì)主流web服務(wù)會(huì)用到的組件的支持,如dubbo,httpclient,mysql等。
另,SpringCloudSleuth,也是在zipkin brave 基礎(chǔ)上的發(fā)展起來(lái)的一個(gè)分布式追蹤系統(tǒng),所以又多了一個(gè)整合zipkin的理由;
我在我自己的springWebMVC + Dubbo + Mysql + RocketMQ 的服務(wù)中,直接引入了spring-cloud-starter-zipkin

可以看到引入spring-cloud-starter-zipkin會(huì)自動(dòng)引入instrumentation的一些jar包,自動(dòng)會(huì)對(duì)通過(guò)springWebMVC,httpClient進(jìn)行的http通信進(jìn)行鏈路跟蹤;但是我需要添加對(duì)dubbo協(xié)議的支持,那么就需要額外引入brave-instrumentation-dubbo(針對(duì)dubbo有兩個(gè)jar包可以使用,分別對(duì)應(yīng)不同版本的dubbo,instrumentation-dubbo對(duì)應(yīng)dubbo2.7.0以上,instrumentation-dubbo-rpc對(duì)應(yīng)dubbo2.6.0以上2.7.0以下);引入jar包后,需要進(jìn)行一些配置,如下zipkin的相關(guān)配置
#通過(guò)http協(xié)議上報(bào)tracing信息,這里的地址是zipkin服務(wù)的地址 #spring.zipkin.base-url=http://localhost:9411 #服務(wù)名稱 spring.zipkin.service.name=my-consumer #開(kāi)啟上報(bào)到zipkin服務(wù),如果不開(kāi)啟的話,tracing信息還是會(huì)在不同服務(wù)中傳遞,只是不會(huì)上報(bào)的zipkin服務(wù)端 spring.zipkin.enabled=false #使用默認(rèn) http 方式收集 span 需要配置此項(xiàng) spring.zipkin.sender.type=web #采樣率,默認(rèn)是0.1, 如果是1的話,代表百分之百采樣 spring.sleuth.sampler.probability=1
關(guān)于dubbo的配置,只需要如下
#add tracing filter dubbo.consumer.filter = tracing #add tracing filter dubbo.provider.filter = tracing
這樣就可以在日志中加上traceId的輸出,來(lái)更好的進(jìn)行鏈路分析,%X{traceId}的寫(xiě)法,顯然原理是放在MDC中;這樣就只需要通過(guò)一個(gè)traceId就能分析代碼全鏈路里都做了哪些事情,當(dāng)然前提是你有記日志;

如果你只是需要一個(gè)traceId來(lái)方便追蹤日志,那么這里就已經(jīng)可以了;如果還需要zipkin的鏈路分析功能,那么就需要搭建一個(gè)zipkin服務(wù);可以直接在zipkin官網(wǎng)上找到docker啟動(dòng)zipkin的quickstart。
然后在系統(tǒng)中進(jìn)行相應(yīng)配置即可訪問(wèn)http://localhost:9411查看;



以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IntelliJ IDEA將導(dǎo)入的項(xiàng)目轉(zhuǎn)成maven項(xiàng)目
這篇文章主要介紹了IntelliJ IDEA將導(dǎo)入的項(xiàng)目轉(zhuǎn)成maven項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
微信小程序 navigator 跳轉(zhuǎn)url傳遞參數(shù)
這篇文章主要介紹了 微信小程序 navigator 跳轉(zhuǎn)url傳遞參數(shù)的相關(guān)資料,需要的朋友可以參考下2017-03-03
java開(kāi)發(fā)Dubbo注解Adaptive實(shí)現(xiàn)原理
這篇文章主要為大家介紹了java開(kāi)發(fā)Dubbo注解Adaptive實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
SpringBoot打印詳細(xì)啟動(dòng)異常信息
這篇文章主要介紹了SpringBoot打印詳細(xì)啟動(dòng)異常信息,本文包含了詳細(xì)的過(guò)程解析與案例,概要的說(shuō)明了如何去使用打印啟動(dòng)異常信息,需要的朋友可以參考下2021-06-06
Java面試重點(diǎn)中的重點(diǎn)之Elasticsearch核心原理
ElasticSearch是一個(gè)基于Lucene的搜索引擎,是用Java語(yǔ)言開(kāi)發(fā)的,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便,作為Apache許可條款下的開(kāi)放源碼發(fā)布,是一種流行的企業(yè)級(jí)搜索引擎,是最受歡迎的企業(yè)搜索引擎2022-01-01
Java如何使用Query動(dòng)態(tài)拼接SQL詳解
這篇文章主要給大家介紹了關(guān)于Java如何使用Query動(dòng)態(tài)拼接SQL的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
Java使用POI從Excel讀取數(shù)據(jù)并存入數(shù)據(jù)庫(kù)(解決讀取到空行問(wèn)題)
有時(shí)候需要在java中讀取excel文件的內(nèi)容,專業(yè)的方式是使用java POI對(duì)excel進(jìn)行讀取,這篇文章主要給大家介紹了關(guān)于Java使用POI從Excel讀取數(shù)據(jù)并存入數(shù)據(jù)庫(kù),文中介紹的辦法可以解決讀取到空行問(wèn)題,需要的朋友可以參考下2023-12-12

