使用zipkin我們可以清楚的看到服務的調用過程。尤其是當多個服務相互調用的時候。
實現一個簡單的zipkin的方法如下
創建zipkin server
配置pom文件
<dependency>
<groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-javanica</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
<version>2.11.8</version>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
<version>2.11.8</version>
</dependency>
配置yml
server:
port: 6001
spring:
application:
name: ZipkinServer6001
sleuth:
# 不對本身跟蹤
enabled: false
eureka:
client:
serviceUrl:
defaultZone: http://localhost:7001/eureka/
management.metrics.web.server.auto-time-requests: false
創建啓動類
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
@EnableZipkinServer
public class ZipkinServerApplication6001 {
public static void main(String[] args) throws Exception {
new SpringApplicationBuilder(ZipkinServerApplication6001.class).web(true).run(args);
}
}
客戶端配置
需要引入zipkin的相關依賴,如下
修改pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
修改yml
這裏新增了zipkin服務端的路徑
spring:
application:
name: RESTAPI
zipkin:
base-url: http://localhost:6001
測試
可以看到我們訪問的http://localhost:8001/feignClass/class/1時的調用過程是先調用gateview8001,後代調用restapi 服務。