七、SpringCloud请求链路跟踪

CY 2019年03月21日 632次浏览

和异常类似,出异常的时候控制台总是会打印出调用栈信息,开发者通过调用栈来分析异常出现的原因,但是微服务数量众多,而且调用服务的链路错综复杂,在一个服务出现了问题的时候,通常很难排查到底是后面的哪个服务导致了这个服务出现了问题,所以也需要像异常那样的调用栈,甚至还要统计出一些信息,比如说调用微服务耗用的时间等等,这就是链路跟踪。

Zipkin下载地址

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

运行方式就是普通的java -jar

微服务中的配置(sleuth)

坐标:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

配置:

spring:
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      # 采样率,0 - 1之间,1表示全部采集
      probability: 1

这样就可以进行链路跟踪了。

访问9411端口就可以查看到zipkin的界面了。

链路跟踪界面

其中包含了三个id

traceId: 当前链路的id

spanId: 当前链路中某一个环节的id

parentId: 当前环节的上一个环节的id