SpringCloud实战---第十九篇:分布式请求链路跟踪Sleuth

系列文章目录

SpringCloud快速入门到精通各组件原理
专栏传送门



一、SpringCloudSleuth链路监控是什么

  • 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
  • 官网:https://github.com/spring-cloud/spring-cloud-sleuth
  • Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案。
  • 在分布式系统中提供追踪解决方案并且兼容支持了zipkin。
  • 简单来说,Sleuth就是链路调用监控工具,通过zipkin可以实现图形化的调用链路监测。

二、安装zipkin

  • SpringCloud从F版起已不需要自己构建Zipkin Server了,只需调用jar包即可。
  • 下载地址(自己下载最新的即可):https://repo1.maven.org/maven2/io/zipkin/zipkin-server/
  • zipkin-server-2.12.9-exec.jar
  • 运行jar: java -jar zipkin-server-2.12.9-exec.jar
    在这里插入图片描述
    访问可视化界面
http://127.0.0.1:9411/zipkin/

在这里插入图片描述

三、先构建好基础工程(一篇一篇看过来的不用重新构建)

构建基础父工程:构建基础父工程
Rest风格微服务:Rest风格微服务
传统分布式方法:传统分布式方法
改造工程,抽取公共模块:改造工程,抽取公共模块
使用Eureka:使用Eureka
Eureka集群: Eureka集群

想偷懒的请下载;gitee上我上传的代码:

https://gitee.com/xiaoZ1712/cloud2021

基础工程构建完成的目录结构:
在这里插入图片描述
启动所有模块,访问

localhost:7001

显示如下,代表基础工程没问题
在这里插入图片描述

话不多说,立马开干

四、微服务整合Sleuth

我们先改造服务提供方,添加调用链路的监控

改造服务提供方

1. 给8001工程添加sleuth依赖

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

在这里插入图片描述

2. 给8001添加yml配置

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

在这里插入图片描述

3. 给8001添加一个测试接口

  @GetMapping("/payment/zipkin")
    public String paymentZipkin()
    {
        return "hi ,i'am paymentzipkin server fall back,welcome to atguigu,O(∩_∩)O哈哈~";
    }

在这里插入图片描述

改造服务调用方

1. 给80工程添加sleuth依赖

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

在这里插入图片描述

2. 给80添加yml配置

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

在这里插入图片描述

3. 给80添加调用8001测试接口的接口

// ====================> zipkin+sleuth
@GetMapping("/consumer/payment/zipkin")
public String paymentZipkin()
{
    String result = restTemplate.getForObject(PAYMENT_URL+"/payment/zipkin/", String.class);
    return result;
}

在这里插入图片描述

五、启动测试

依次启动7001、8001、80工程,测试80调用几次8001的接口

http://127.0.0.1/consumer/payment/zipkin

在这里插入图片描述
多刷新几次
访问zipkin

http://127.0.0.1:9411/zipkin/

按照以下步骤查看服务链路调用

  1. 添加链路查找条件
    在这里插入图片描述
    在这里插入图片描述
  2. 选择查找80order工程服务监控
    在这里插入图片描述
  3. 点击查找
    在这里插入图片描述
    在这里插入图片描述
  4. 点击SHOW
    在这里插入图片描述
    在这里插入图片描述
  5. 查看依赖
    在这里插入图片描述
    在这里插入图片描述
    查看图形化调用链路,点击小圆点可以查看详细信息
    在这里插入图片描述

O(∩_∩)O哈哈~

我们的微服务可以被看到是否健康啦!

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:博客之星2021 设计师:Hiro_C 返回首页
评论

打赏作者

老司机张师傅

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值