SpringCloud Sleuth分布式链路跟踪

是什么?

GitHub:https://github.com/spring-cloud/spring-cloud-sleuth

微服务跟踪(sleuth)其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化),捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。
SpringCloudSleuth有4个特点

特点说明
提供链路追踪通过sleuth可以很清楚的看出一个请求经过了哪些服务,可以方便的理清服务局的调用关系
性能分析通过sleuth可以很方便的看出每个采集请求的耗时,分析出哪些服务调用比较耗时,当服务调用的耗时随着请求量的增大而增大时,也可以对服务的扩容提供一定的提醒作用
数据分析 优化链路通过sleuth可以很方便的看出每个采集请求的耗时,分析出哪些服务调用比较耗时,当服务调用的耗时随着请求量的增大而增大时,也可以对服务的扩容提供一定的提醒作用
可视化对于程序未捕获的异常,可以在zipkpin界面上看到

为什么要用?

在微服务框架中,-个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个请求都会形成一复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败,Sleuth就可以不仅可以生产服务之间的链路图,还可以很清楚的看到每一个方法是否调用成,调用了谁,所以使用sleuth是一个不错的选择

怎么下载zipkin

https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

下载完之后,通过java -jar zipkin.jar

怎么用?

springcloud f版 就不需要自己搭建zipkin,只需要引入

<!--包含了sleuth+zipkin-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

yml中配置

# zipkin/sleuth链路跟踪、
spring:
      zipkin:
        base-url: http://localhost:9411
      sleuth:
        sampler:
          # 采样值介于0到1之间,1表示全部采集,一般取值在0.5
          probability: 1

配置完之后就可以同过http://localhost:9411/zipkin/

查看依赖关系

原理图

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

只有不断的努力才会有更大的惊喜等着你去发现!!