Spring Cloud Zipkin服務端追蹤服務
Zipkin 簡介
ZipKin 是一個開放源代碼的分布式跟蹤系統(tǒng),用于收集服務的定時數(shù)據(jù),以解決微服務架構(gòu)中的延遲問題。包括數(shù)據(jù)的收集、存儲、查找和展現(xiàn)。
每個服務向 Zipkin 報告計時數(shù)據(jù),Zipkin 會根據(jù)調(diào)用關(guān)系通過 Zipkin UI 生成依賴關(guān)系圖,顯示了多少跟蹤請求通過每個服務。該組件可以讓我們通過一個 Web 前端輕松的收集和分析數(shù)據(jù)。例如用戶每次請求服務的處理時間等,可方便的監(jiān)測系統(tǒng)中存在的瓶頸。
服務追蹤說明
微服務架構(gòu)是通過業(yè)務來劃分服務的,使用 REST 調(diào)用。對外暴露的一個接口,可能需要很多個服務協(xié)同才能完成這個接口功能。
如果鏈路上任何一個服務出現(xiàn)問題或者網(wǎng)絡超時,都會形成導致接口調(diào)用失敗。
隨著業(yè)務的不斷擴張,服務之間互相調(diào)用會越來越復雜。隨著服務的越來越多,對調(diào)用鏈的分析會越來越復雜,如下圖:
Zipkin 服務端引入依賴
在 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
測試服務追蹤
啟動全部項目,打開瀏覽器訪問:http://localhost:9411 ,出現(xiàn)以下界面
點擊 Find a trace,可以看到具體服務相互調(diào)用的數(shù)據(jù)
點擊 Dependencies,可以發(fā)現(xiàn)服務的依賴關(guān)系
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
數(shù)據(jù)庫連接池c3p0配置_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了數(shù)據(jù)庫連接池c3p0配置的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08java的arraylist排序示例(arraylist用法)
這篇文章主要介紹了java的arraylist排序示例,學習一下arraylist的用法,需要的朋友可以參考下2014-03-03JDBC之PreparedStatement類中預編譯的綜合應用解析
SQL 語句被預編譯并存儲在 PreparedStatement 對象中。然后可以使用此對象多次高效地執(zhí)行該語句2013-07-07Spring Cloud根據(jù)服務名獲取服務的ip端口問題
這篇文章主要介紹了Spring Cloud根據(jù)服務名獲取服務的ip端口,本篇示例我就以Nacos注冊中心為例了,下面是我注冊的兩個服務,需要的朋友可以參考下2022-09-09