Spring Cloud Zipkin服務(wù)端追蹤服務(wù)
Zipkin 簡介
ZipKin 是一個開放源代碼的分布式跟蹤系統(tǒng),用于收集服務(wù)的定時數(shù)據(jù),以解決微服務(wù)架構(gòu)中的延遲問題。包括數(shù)據(jù)的收集、存儲、查找和展現(xiàn)。
每個服務(wù)向 Zipkin 報告計時數(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ù)的不斷擴張,服務(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)一依賴管理項目中
相關(guān)配置
在 application.yml 主要添加 zipkin 的相關(guān)配置
management: metrics: web: server: auto-time-requests: false
在 Application 啟動類中通過 @EnableZipkinServer 注解開啟 Zipkin Server 功能
@SpringBootApplication @EnableEurekaClient @EnableZipkinServer public class ZipkinApplication { public static void main(String[] args) { SpringApplication.run(ZipkinApplication.class, args); } }
Spring Cloud Zipkin 客戶端
在所需要被追蹤的項目中添加以下配置
引入依賴
在 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ù)追蹤
啟動全部項目,打開瀏覽器訪問:http://localhost:9411 ,出現(xiàn)以下界面
點擊 Find a trace,可以看到具體服務(wù)相互調(diào)用的數(shù)據(jù)
點擊 Dependencies,可以發(fā)現(xiàn)服務(wù)的依賴關(guān)系
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
數(shù)據(jù)庫連接池c3p0配置_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了數(shù)據(jù)庫連接池c3p0配置的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08java的arraylist排序示例(arraylist用法)
這篇文章主要介紹了java的arraylist排序示例,學(xué)習(xí)一下arraylist的用法,需要的朋友可以參考下2014-03-03java爬蟲jsoup解析HTML的工具學(xué)習(xí)
jsoup是一個解析HTML的第三方j(luò)ava庫,它提供了一套非常方便的API,可使用DOM,CSS以及類jQuery的操作方法來取出和操作數(shù)據(jù),本文就來開始jsoup的使用學(xué)習(xí)2022-07-07java isPalindrome方法在密碼驗證中的應(yīng)用
這篇文章主要為大家介紹了java isPalindrome方法在密碼驗證中的簡單應(yīng)用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12JDBC之PreparedStatement類中預(yù)編譯的綜合應(yīng)用解析
SQL 語句被預(yù)編譯并存儲在 PreparedStatement 對象中。然后可以使用此對象多次高效地執(zhí)行該語句2013-07-07Spring Cloud根據(jù)服務(wù)名獲取服務(wù)的ip端口問題
這篇文章主要介紹了Spring Cloud根據(jù)服務(wù)名獲取服務(wù)的ip端口,本篇示例我就以Nacos注冊中心為例了,下面是我注冊的兩個服務(wù),需要的朋友可以參考下2022-09-09