目录
1. Sleuth概述
Sleuth configures everything you need to get started. This includes where trace data (spans) are reported to, how many traces to keep (sampling), if remote fields (baggage) are sent, and which libraries are traced.
微服务框架中,一个由客户端发起的请求在后端系统中经过多个不同的服务节点调用来协同产生最后的请求结果,每个请求都会形成一条复杂的分布式服务调用链路,而Springcloud Sleuth提供了一套完整的服务跟踪的解决方案。
2. Zipkin配置
1) 下载Zipkin的zipkin-server-2.12.9-exec.jar。
2) 启动zipkin:java -jar .\zipkin-server-2.12.9-exec.jar。
3) 访问zipkin(localhost:9411/zipkin/)。
3. Sleuth案例
以下案例代码的Github地址。
四个modules分别是:cloud-eureka-server7001,cloud-provider-hystrix-payment8001,cloud-consumer-feign-hystrix-order80。
3.1 服务提供者
1) cloud-provider-payment8001添加zipkin依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2) 添加zipkin配置。
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
#采样取值介于 0到1之间,1则表示全部收集
probability: 1
3) PaymentController添加接口:
@GetMapping(value="/payment/zipkin")
public String paymentZipkin() {
return "hello,i am paymentZipkin server fallback,O(∩_∩)O哈哈~";
}
3.2 服务消费者
1) cloud-consumer-feign-hystrix-order80添加zipkin依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2) 添加zipkin配置。
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
#采样取值介于 0到1之间,1则表示全部收集
probability: 1
3) ordercontroller添加接口:
@GetMapping(value="/consumer/payment/zipkin")
public String paymentZipkin() {
return restTemplate.getForObject("http://127.0.0.1:8001/payment/zipkin/",String.class);
}
3.3 依赖关系