Sleuth分布式请求链路跟踪简单使用
一、Sleuth简介
在微服务框架中,一个请求会经过多个服务节点协调处理后最后返回请求结果,这之间的过程就形成一条复杂的链路,任何一环出现高延时或者错误都会引起整个请求的失败.
而Sleuth则为分布式系统提供了一套完整的跟踪服务的解决方案,兼容zipkin.
二、Sleuth的使用
1.下载
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
2.运行
直接将Jar包运行就行
java -jar zipkin-server-2.12.9-exec.jar
3.访问客户端页面
http://localhost:9411/zipkin
4.名词解释
Span:表示一次请求,调用链路来源
Trace:表示Span的集合,表示一条调用链路
三、Sleuth代码编写
1.改写Pom
<!-- 包含了sleuth zipkin 数据链路追踪-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2.改写yml
spring:
application:
name: cloud-payment-service
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
#采样率值介于 0 到 1 之间,1 则表示全部采集
probability: 1
3.改写controller
@GetMapping("/payment/zipkin")
public String paymentZipkin()
{
return "我是/payment/zipkin的网站";
}
4.调用服务端与服务端类似
controller层改一下
// ====================> zipkin+sleuth
@GetMapping("/consumer/payment/zipkin")
public String paymentZipkin()
{
String result = restTemplate.getForObject(PAYMENT_URL+"/payment/zipkin", String.class);
return "这里是order80: "+result;
}
yml修改
spring:
application:
name: cloud-order-service
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
#采样率值介于 0 到 1 之间,1 则表示全部采集
probability: 1
5.9411zipkin的Server
现在就可以对链路进行跟踪了