Spring Cloud Sleuth分布式链路跟踪

1、概述

在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。所以在较复杂的系统中,一个调用链路中会有很多个微服务,无疑我们需要对链路上的微服务进行跟踪。

SpringCloud Sleuth就提供了一套完整的服务跟踪的解决方案,在分布式系统中提供了追踪解决方案并且兼容支持了zipkin,SpringCloud Sleuth负责对微服务调用链路的收集整理,而zipkin负责对链路的展现。

官网:https://cloud.spring.io/spring-cloud-sleuth/reference/html/

2、zipkin的搭建安装

SpringCloud从F版之后就不需要自己构建Zipkin Server了,只需要调用相关jar包即可,下载其jar包到本地,进入到该jar包的目录,在命令行中输入java -jar命令运行该jar文件:

jar包下载地址:http://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

java -jar zipkin-server-2.12.9-exec.jar

在这里插入图片描述
访问 http://localhost:9411/zipkin/ 进入zipkin监控平台页面:

在这里插入图片描述

3、项目中使用SpringCloud Sleuth

在需要被链路监控的微服务中引入如下依赖:

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

我们最开始学习Eureka服务注册中心时使用的8001微服务(服务提供方)和80微服务(服务消费方),那时候80微服务作为服务消费方访问8001提供的微服务,我们现在在这两个微服务中引入上述依赖,并在配置文件中配置zipkin和sleuth的配置信息:

spring:
  zipkin:
    base-url: http://localhost:9411 # 监控展现地址
  sleuth:
    sampler:
      # 采样率值介于0到1之间,1表示全部采集
      probability: 1

在80和8001微服务都引入了上述依赖并添加了上面的配置后,先后启动Eureka服务注册中心、8001服务提供方服务、80服务消费方服务,然后我们用80调用8001的服务进行测试,在zipkin面板中即可查看服务调用链路:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值