SpringCloud使用sleuth+zipkin实现链路追踪
开篇讲明使用的技术版本
springboot 2.1.4.RELEASE
jdk 1.8
一、安装运行zipkin
1.1、下载zipkin
https://repo1.maven.org/maven2/io/zipkin/java/zipkin-server/2.12.9/zipkin-server-2.12.9-exec.jar
1.2、运行zipkin
java -jar zipkin-server-2.12.9-exec.jar
二、SpringCloud整合Sleuth+Zipkin实现链路追踪
2.1、引入Maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
2.2、配置链路追踪
spring:
zipkin:
#zipkin中心地址
base-url: http://localhost:9411
#发送数据类型 kafaka、rabbitmq、web
sender:
type: web
sleuth:
sampler:
probability: 1
Spring Cloud Sleuth有一个Sampler策略,可以通过这个实现类来控制采样算法。采样器不会阻碍span相关id的产生,但是会对导出以及附加事件标签的相关操作造成影响。 Sleuth默认采样算法的实现是Reservoir sampling,具体的实现类是PercentageBasedSampler,默认的采样比例为: 0.1(即10%)。不过我们可以通过spring.sleuth.sampler.percentage来设置,所设置的值介于0.0到1.0之间,1.0则表示全部采集。
2.3、配置测试接口(本案例使用Feign来测试链路追踪)
/**
* @Description //TODO
* @Author huangwb
**/
@RestController
public class UserController {
@Autowired
private ProductService productService;
@GetMapping("/user")
public String getUser() {
return productService.getProduct("huangwb");
}
}
/**
* @Description //TODO
* @Date $ $
* @Author huangwb
**/
@FeignClient("spring-cloud-provinde")
public interface ProductService {
@GetMapping("/api/product")
public String getProduct(@RequestParam("name") String name);
}
2.4、运行项目、访问接口、查看zipkin的UI界面
zipkin默认地址( http://localhost:9411/zipkin/)