去年一直有想法將opentracing整合進自己的dubbo服務的想法。但是zipkin br**e 對 dubbo的支援,沒有更新到最新版本,所以一直沒有行動。
其中br**e library 是乙個j**a專案,提供了對主流web服務會用到的元件的支援,如dubbo,httpclient,mysql等。
另,springcloudsleuth,也是在zipkin br**e 基礎上的發展起來的乙個分布式追蹤系統,所以又多了乙個整合zipkin的理由;
我在我自己的springwebmvc + dubbo + mysql + rocketmq 的服務中,直接引入了spring-cloud-starter-zipkin
可以看到引入spring-cloud-starter-zipkin會自動引入instrumentation的一些jar包,自動會對通過springwebmvc,httpcl進行的http通訊進行鏈路跟蹤;但是我需要新增對dubbo協議的支援,那麼就需要額外引入br**e-instrumentation-dubbo(針對dubbo有兩個jar包可以使用,分別對應不同版本的dubbo,instrumentation-dubbo對應dubbo2.7.0以上,instrumentation-dubbo-rpc對應dubbo2.6.0以上2.7.0以下);引入jar包後程式設計客棧,需要進行一些配置,如下zipkin的相關配置
#通過http協議上報tracing資訊,這裡的位址是zipkin服務的位址
#服務名稱
spring.zipkin.service.name=my-consumer
#開啟上報到zipkin服務,如果不開啟的話,tracing信程式設計客棧息還是會在不同服務中傳遞,只是不會上報的zipkin服務端
spring.zipkin.enabled=false
#使用預設 http 方式收集 span 需要配置此項
spring.zipkin.sender.type=
#取樣率,預設是0.1, 如果是1的話,代表百分之百取樣
spring.sleuth.sampler.probability=1
關於dubbo的配置,只需要如下
#add tracing filter
dubbo.consumer.filter = tracing
#add tr程式設計客棧acing filter
dubbo.provider.filter = tracing
這樣就可以在日誌中加上traceid的輸出,來更好的進行鏈路分析,%x的寫法,顯然原理是放在mdc中;這樣就只需要通過乙個traceid就能分析**全鏈路裡都做了哪些事情,當然前提是你有記日誌;
如果你只是需要乙個traceid來方便追蹤日誌,那麼這裡就已經可以了;如果還需要zipkin的鏈路分析功能,那麼就需要搭建乙個zipkin服務;可以直接在zipkin官網上找到docker啟動zipkin的quickstart。
然後在系統中進行相應配置即可訪問http://localhost:9411檢視;
本文標題: dubbo服務整合zipkin詳解
本文位址:
微服務整合Zipkin
一 新建專案microservice provider user trace zipkin 二 為專案新增以下依賴 org.springframework.boot spring boot starter web org.springframework.boot spring boot starte...
SpringCloud整合Zipkin鏈路追蹤
1.微服務模組中匯入zipkin依賴 匯入的時候質注意一下springcloud的版本 org.springframework.cloud groupid spring cloud starter zipkin artifactid dependency 2.配置檔案 zipkin伺服器位址 關閉服...
Nacos整合Dubbo服務
windows系統下啟動nacos 解壓開windows的zip包之後,在bin目錄下找到startup.cmd指令碼雙擊啟動。startup.sh是linux系統下的啟動指令碼。啟動完成之後,可以通過訪問localhost 8848 預設使用者名稱 密碼 nacos nacos 進如nacos的控...