Zipkin 是一个可以采集并且跟踪分布式系统中请求数据的组件
让开发者可以更加直观的监控到请求在各个微服务所消耗的时间
Zipkin: Zipkin Server 、Zipkin Client
创建模块工程 zipkin
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
<version>2.9.4</version>
</dependency>
</dependencies>
server:
port: 9090
@SpringBootApplication
@EnableZipkinServer
public class ZipkinApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(ZipkinApplication.class, args);
}
}
- 创建zipkinclient 客户端模块工程
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
</dependencies>
server:
port: 8090
spring:
application:
name: zipkinclient
sleuth:
web:
client:
enabled: true # 设置开启请求跟踪
sampler:
probability: 1.0 # 设置采样比例,默认是1.0
zipkin:
base-url: http://localhost:9090/ # 服务端地址
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
@SpringBootApplication
public class ZipkinClientApplication {
public static void main(String[] args) {
SpringApplication.run(ZipkinClientApplication.class,args);
}
}
controller:
@RestController
@RequestMapping("/zipkin")
public class ZipkinHandler {
@Value("${server.port}")
private String port;
@GetMapping("/index")
public String index() {
return this.port;
}
}
依次启动