Spring Cloud Zipkin服務(wù)端追蹤服務(wù)
Zipkin 簡介
ZipKin 是一個開放源代碼的分布式跟蹤系統(tǒng),用于收集服務(wù)的定時數(shù)據(jù),以解決微服務(wù)架構(gòu)中的延遲問題。包括數(shù)據(jù)的收集、存儲、查找和展現(xiàn)。
每個服務(wù)向 Zipkin 報(bào)告計(jì)時數(shù)據(jù),Zipkin 會根據(jù)調(diào)用關(guān)系通過 Zipkin UI 生成依賴關(guān)系圖,顯示了多少跟蹤請求通過每個服務(wù)。該組件可以讓我們通過一個 Web 前端輕松的收集和分析數(shù)據(jù)。例如用戶每次請求服務(wù)的處理時間等,可方便的監(jiān)測系統(tǒng)中存在的瓶頸。
服務(wù)追蹤說明
微服務(wù)架構(gòu)是通過業(yè)務(wù)來劃分服務(wù)的,使用 REST 調(diào)用。對外暴露的一個接口,可能需要很多個服務(wù)協(xié)同才能完成這個接口功能。
如果鏈路上任何一個服務(wù)出現(xiàn)問題或者網(wǎng)絡(luò)超時,都會形成導(dǎo)致接口調(diào)用失敗。
隨著業(yè)務(wù)的不斷擴(kuò)張,服務(wù)之間互相調(diào)用會越來越復(fù)雜。隨著服務(wù)的越來越多,對調(diào)用鏈的分析會越來越復(fù)雜,如下圖:
Zipkin 服務(wù)端引入依賴
在 pom.xml 主要添加 zipkin 、 zipkin-server 和 zipkin-autoconfigure-ui 依賴
<dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin</artifactId></dependency><dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-server</artifactId></dependency><dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-ui</artifactId></dependency>
注意: 這里的 zipkin 版本號為 2.10.1,需要將版本號托管到統(tǒng)一依賴管理項(xiàng)目中
相關(guān)配置
在 application.yml 主要添加 zipkin 的相關(guān)配置
management: metrics: web: server: auto-time-requests: false
在 Application 啟動類中通過 @EnableZipkinServer 注解開啟 Zipkin Server 功能
@SpringBootApplication@EnableEurekaClient@EnableZipkinServerpublic class ZipkinApplication { public static void main(String[] args) { SpringApplication.run(ZipkinApplication.class, args); }}
Spring Cloud Zipkin 客戶端
在所需要被追蹤的項(xiàng)目中添加以下配置
引入依賴
在 pom.xml 中添加 spring-cloud-starter-zipkin 依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId></dependency>
相關(guān)配置
在 application.yml 中添加 zipkin 地址即可
spring: zipkin: base-url: http://localhost:9411
測試服務(wù)追蹤
啟動全部項(xiàng)目,打開瀏覽器訪問:http://localhost:9411 ,出現(xiàn)以下界面
點(diǎn)擊 Find a trace,可以看到具體服務(wù)相互調(diào)用的數(shù)據(jù)
點(diǎn)擊 Dependencies,可以發(fā)現(xiàn)服務(wù)的依賴關(guān)系
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. vue實(shí)現(xiàn)web在線聊天功能2. 完美解決vue 中多個echarts圖表自適應(yīng)的問題3. JavaScript實(shí)現(xiàn)頁面動態(tài)驗(yàn)證碼的實(shí)現(xiàn)示例4. 解決Android Studio 格式化 Format代碼快捷鍵問題5. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis6. Java使用Tesseract-Ocr識別數(shù)字7. Python使用urlretrieve實(shí)現(xiàn)直接遠(yuǎn)程下載圖片的示例代碼8. 在Chrome DevTools中調(diào)試JavaScript的實(shí)現(xiàn)9. Springboot 全局日期格式化處理的實(shí)現(xiàn)10. SpringBoot+TestNG單元測試的實(shí)現(xiàn)
