Sleuth&Zipkin链路跟踪

概念:

Spring Cloud Sleuth可以追踪10种类型的组件,async、Hystrix,messaging,websocket,rxjava,scheduling,web(Spring MVC Controller,Servlet),webclient(Spring RestTemplate)、Feign、Zuul

 

基于谷歌的Zipkin来实现,相当于阿里的鹰眼,zipkin有自带的UI查看链路,也提供api进行查询

Span:一个调用过程比如a调用b


Trace:多个span的组合,一个Trace对应多个span,代表整个链路

服务端:

spring boot 2.0后可以jar启动zipkin,不需要建项目,默认端口9411

zipkin-server.jar

 


  io.zipkin.java
  zipkin-server
  2.12.2


  io.zipkin.java
  zipkin-autoconfigure-ui
  2.12.2

 

#必须加上不然报错

spring.main.allow-bean-definition-overriding=true

management.metrics.web.server.auto-time-requests=false

注意:zipkin的包容易和spring有冲突,注意解决和不导入没用的包

需要跟踪的服务:

<dependency>    <groupId>org.springframework.cloudgroupId>    <artifactId>spring-cloud-starter-zipkinartifactId>dependency>

配置:

spring.zipkin.enabled=true #开启zipkin

spring.zipkin.base-url=http://localhost:9411

spring.sleuth.sampler.percentage=1.0 #1.0表示100%上传到服务端,默认0.1

spring.sleuth.sampler.probability=1.0#因为有改过,所以两个加上

spring.zipkin.sender.type=web   #表示和zipkin服务端用http通宵,也可以用消息等

 

 

链路信息是保存在内存,可以配置保存到数据库

高并发情况下可以保存到ElasticSearch

你可能感兴趣的:(Sleuth&Zipkin链路跟踪)