SpringCloud微服务组件-链路追踪sleuth
一 定义
当一个请求到达后端后,由于微服务众多,这个请求可能会经历N个服务节点,节点越多服务之间的关系也就越复杂,我们往往需要监控每个节点的处理,所以就有了链路追踪这个概念。链路就是每一个前端请求都会形成一个复杂的分布式服务调用的链路,在每条链路中任何一个依赖服务出现延迟超时或者错误异常都有可能导致整个请求的最终失败。
通过sleuth的使用,可以清晰的理清楚每个请求经历了哪些服务,
更方便的理清服务之间的调用关系,更加的一目了然去定位错误出在了哪里。
二 使用步骤
zipkin
zipkin是基于sleuth的链路追踪控制面板,提供可视化界面,更加方便进行服务追踪。
1.下载zipkin:
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
2.运行:
java -jar zipkin-server-2.12.9-exec.jar
浏览器访问zipkin控制面板:localhost:9411/zipkin
在微服务(网关服务、文章服务、用户服务)都做如下配置:
3.引入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
4.配置yml文件:
spring:
zipkin:
# 配置zipkin采集的服务地址,数据发送到哪里
base-url: http://localhost:9411/
sender:
# 数据传输方式,通过web http形式
type: web
sleuth:
sampler:
# 设定采样比例,0~1
probability: 1
5.使用zipkin控制面板
通过dashboard可以看到服务调用的一些链路,每个服务是否调用成功,调用的时间,以及每个微服务之间的彼此依赖关系