dubbo服務(wù)整合zipkin詳解
去年一直有想法將openTracing整合進自己的dubbo服務(wù)的想法。但是zipkin brave 對 dubbo的支持,沒有更新到最新版本,所以一直沒有行動。
目前zipkin支持的語言,以及框架如下圖:具體可以參考官方網(wǎng)址
其中brave library 是一個java項目,提供了對主流web服務(wù)會用到的組件的支持,如dubbo,httpclient,mysql等。
另,SpringCloudSleuth,也是在zipkin brave 基礎(chǔ)上的發(fā)展起來的一個分布式追蹤系統(tǒng),所以又多了一個整合zipkin的理由;
我在我自己的springWebMVC + Dubbo + Mysql + RocketMQ 的服務(wù)中,直接引入了spring-cloud-starter-zipkin
可以看到引入spring-cloud-starter-zipkin會自動引入instrumentation的一些jar包,自動會對通過springWebMVC,httpClient進行的http通信進行鏈路跟蹤;但是我需要添加對dubbo協(xié)議的支持,那么就需要額外引入brave-instrumentation-dubbo(針對dubbo有兩個jar包可以使用,分別對應(yīng)不同版本的dubbo,instrumentation-dubbo對應(yīng)dubbo2.7.0以上,instrumentation-dubbo-rpc對應(yīng)dubbo2.6.0以上2.7.0以下);引入jar包后,需要進行一些配置,如下zipkin的相關(guān)配置
#通過http協(xié)議上報tracing信息,這里的地址是zipkin服務(wù)的地址 #spring.zipkin.base-url=http://localhost:9411 #服務(wù)名稱 spring.zipkin.service.name=my-consumer #開啟上報到zipkin服務(wù),如果不開啟的話,tracing信息還是會在不同服務(wù)中傳遞,只是不會上報的zipkin服務(wù)端 spring.zipkin.enabled=false #使用默認 http 方式收集 span 需要配置此項 spring.zipkin.sender.type=web #采樣率,默認是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的輸出,來更好的進行鏈路分析,%X{traceId}的寫法,顯然原理是放在MDC中;這樣就只需要通過一個traceId就能分析代碼全鏈路里都做了哪些事情,當然前提是你有記日志;
如果你只是需要一個traceId來方便追蹤日志,那么這里就已經(jīng)可以了;如果還需要zipkin的鏈路分析功能,那么就需要搭建一個zipkin服務(wù);可以直接在zipkin官網(wǎng)上找到docker啟動zipkin的quickstart。
然后在系統(tǒng)中進行相應(yīng)配置即可訪問http://localhost:9411查看;
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java String源碼分析并介紹Sting 為什么不可變
這篇文章主要介紹了Java String源碼分析并介紹Sting 為什么不可變的相關(guān)資料,需要的朋友可以參考下2017-02-02SpringBoot中@EnableAutoConfiguration和@Configuration的區(qū)別
這篇文章主要介紹了SpringBoot中@EnableAutoConfiguration和@Configuration的區(qū)別,@SpringBootApplication相當于@EnableAutoConfiguration,@ComponentScan,@Configuration三者的集合,需要的朋友可以參考下2023-08-08Java ThreadLocal類應(yīng)用實戰(zhàn)案例分析
這篇文章主要介紹了Java ThreadLocal類應(yīng)用,結(jié)合具體案例形式分析了java ThreadLocal類的功能、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-09-09springboot+thymeleaf打包成jar后找不到靜態(tài)資源的坑及解決
這篇文章主要介紹了springboot+thymeleaf打包成jar后找不到靜態(tài)資源的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11