使用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 服务。