springcloud之链路追踪sleuth


前言

随着分布式微服务系统的不断发展,系统中的服务调用会越来越复杂,服务调用的链路会更长,为了方便查看服务链路中的调用,获取链路调用每个节点的信息(比如响应时间之类的)就需要对服务的链路调用进行追踪。


一、sleuth是什么?

sleuth就是为了提供在微服务系统中对调用的链路进行追踪,并获取相应的信息,用户可视化的方式展现出来。主要作用就是一下四个方面
在这里插入图片描述

上图来源 https://www.cnblogs.com/dengpengbo/p/11109254.html.

二、使用步骤

spring cloud sleuth整合了zipkin,其实sleuth的链路追踪就是zipkin。
以下时zipkin的官网说明,zipkin就是解决了分布式系统的链路追踪。
在这里插入图片描述

1.下载zipkin

链接: 下载地址.

下载完成之后是zipkin-server-2.12.9-exec.jar的jar包

打开命令提示框输入(需要jdk1.8)在这里插入图片描述
出现以下画面。说明启动成功
在这里插入图片描述

2.pom引入

此次准备用一个注册中心,一个调用方,一个提供方,一共三个微服务进行学习演示。

链接: 注册中心如何搭建?点击这里.

在剩下的两个微服务中引入依赖

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

3.yml配置

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

4.controller

调用方controller:

 @GetMapping("/getPayment/{id}")
    public CommonResult<Payment>  getPayment(@PathVariable("id") String id){
        log.info("查询PayMent信息");

        CommonResult<Payment> result =restTemplate.getForObject(serviceInstance.getUri()+"/payment/getOneById/"+id,CommonResult.class);
        log.info("返回结果:"+result.getMessage());
        return result;
    }

提供方controller:

 @GetMapping("/getOneById/{id}")
    public CommonResult getOneById(@PathVariable("id")String id){

        Payment payment =  paymentService.getById(id);
        log.info("根据Id获取订单信息:"+ JSON.toJSONString(payment));
        return new CommonResult(200,"获取成功"+port,payment);
    }

5.测试

调用方发起请求:
在这里插入图片描述

zipkin 出现以下界面
在这里插入图片描述

红框是请求的链路追踪的信息。点击出现以下画面
在这里插入图片描述
可以查看到服务之间的调用时间,服务个数,调用深度,span的个数。

span:表示的其中链路调用的信息记录。里面包括,父级服务调用id,此服务自身的调用Id,耗时等之类的信息。

三、总结

此篇文章是springcloud的组件学习的个人见解,欢迎大家指正,交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值