javascript
Spring Cloud(八)使用Zipkin进行分布式链路跟踪
前文回顧:
Spring Cloud(一)Eureka Server-單體及集群搭建
Spring Cloud(二) 配置Eureka Client
Spring Cloud(三) 熔斷器Hystrix
Spring Cloud(四) API網關Zuul
Spring Cloud(五) Zuul Filter
Spring Cloud(六) 服務網關GateWay 入門
Spring Cloud(七) GateWay 服務化和過濾器
一.簡介
Zipkin 是一個開放源代碼分布式的跟蹤系統,由Twitter公司開源,它致力于收集服務的定時數據,以解決微服務架構中的延遲問題,包括數據的收集、存儲、查找和展現。
每個服務向zipkin報告計時數據,zipkin會根據調用關系通過Zipkin UI生成依賴關系圖,顯示了多少跟蹤請求通過每個服務,該系統讓開發者可通過一個 Web 前端輕松的收集和分析數據,例如用戶每次請求服務的處理時間等,可方便的監測系統中存在的瓶頸。
Zipkin提供了可插拔數據存儲方式:In-Memory、MySql、Cassandra以及Elasticsearch。
二.代碼示例
該項目基于之前博客中的Spring Cloud 1-4的項目開發
1.pom中添加依賴
? <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/></parent><groupId>com.yfy</groupId><artifactId>study07_zkipin</artifactId><version>0.0.1-SNAPSHOT</version><name>study07_zkipin</name><description>Demo project for Spring Boot</description> ?<properties><zipkin-version>2.11.8</zipkin-version></properties> ?<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId><version>2.0.1.RELEASE</version></dependency><dependency><groupId>io.zipkin.java</groupId><artifactId>zipkin-server</artifactId><version>${zipkin-version}</version></dependency><dependency><groupId>io.zipkin.java</groupId><artifactId>zipkin-autoconfigure-ui</artifactId><version>${zipkin-version}</version></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-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></dependencies>2.Application啟動類中添加注解
@SpringBootApplication @EnableZipkinServer public class Study07ZkipinApplication { ?public static void main(String[] args) {SpringApplication.run(Study07ZkipinApplication.class, args);} ? }3.配置文件
server:port: 9411 spring:application:name: zipkin management:metrics:web:server:#避免訪問zipkin頁面報java.lang.IllegalArgumentExceptionauto-time-requests: false4.微服務配置
在spring-cloud-eureka、 spring-cloud-producer、spring-cloud-consumer、gateway-cloud-zuul中配置以下信息:
spring.sleuth.sampler.probability=1.0 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId><version>2.0.1.RELEASE</version></dependency>5.測試
-
啟動spring-cloud-zipkin
訪問:http://localhost:9411/zipkin
-
依次啟動 spring-cloud-eureka、 spring-cloud-producer、spring-cloud-consumer、gateway-cloud-zuul
訪問對應的接口
http://localhost:9002/hello?name=yfy
http://localhost:9002/world
http://localhost:8888/spring-cloud-consumer/hello/231213?token=12321
http://localhost:8888/spring-cloud-producer/hello?name=yfy&token=11
注:若不調用相應接口對應的服務名不會顯示到選擇框
可以看到依賴關系如下:
總結
以上是生活随笔為你收集整理的Spring Cloud(八)使用Zipkin进行分布式链路跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java获取pdf的页数、内容和缩略图
- 下一篇: Spring Boot实现监控linux