Sleuth:
在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延迟或错误都会引起整个请求最后的失败。
Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin
一、环境搭建
sleuth下载地址
在刚刚的下载的文件夹中,使用cmd打开,输入下面的命令,看到下面的图形就说明启动成功
此时我们也可以通过浏览器访问http://localhost:9411
来查看可视化的界面:
二、demo案例
1.给服务方和消费方都添加下面的依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2.给服务方和消费方的application.yml中都添加下面的配置:
spring:
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
#采样率值介于0到1之间,1表示全部采样
probability: 1.0
3.给服务方添加一个controller,暴露接口:
@RequestMapping("/payment/zipkin")
public String paymentZipkin(){
return "hi,i'am paymentzipkin server fall back,welcome!,O(∩_∩)O哈哈~";
}
4.给消费方添加一个controller,完成服务的调用:
@GetMapping("/consumer/payment/zipkin")
public String paymentZipkin(){
String result = restTemplate.getForObject("http://localhost:8001"+"/payment/zipkin/",String.class);
return result;
}
三、测试
浏览器访问:http://localhost/consumer/payment/zipkin
在zipkin的可视化界面即可看到请求信息:
还可以看见服务的调用关系如下: