SpringCloud Sleuth分布式链路跟踪

目录

1、概述

1.1、现有问题

1.1.1、微服务框架中请求处理过程

1.1.2、造成问题

1.2、解决方法

2、实例

2.1、zipkin

2.1.1、下载

2.1.2、运行

2.1.3、运行控制台

2.2、服务提供者

2.2.1、POM文件

2.2.2、yaml配置文件

2.2.3、Controller

2.3、 服务消费者

2.3.1、POM和yaml文件同服务提供者

2.3.2、Controller

2.4、测试


1、概述

1.1、现有问题

1.1.1、微服务框架中请求处理过程

  1. 客户端发起请求
  2. 后端系统中,经过多个不同的服务节点调用
  3. 产生结果

1.1.2、造成问题

每一个前端请求,会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败

1.2、解决方法

  • SpringCloud Sleuth提供了一套完整的服务跟踪的解决方案
  • 在分布式系统中提供追踪解决方案,并且兼容支持zipkin

2、实例

2.1、zipkin

2.1.1、下载

2.1.2、运行

在命令行终端中输入:java -jar zipkin-server-2.12.9-exec.jar

2.1.3、运行控制台

        http://localhost:9411/zipkin

2.2、服务提供者

2.2.1、POM文件

        引入 spring-cloud-starter-zipkin 依赖

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

2.2.2、yaml配置文件

         添加 zipkin sleuth 属性

spring:
 application:
  name: cloud-payment-service #微服务名称

 zipkin:
   base-url: http://localhost:9411

 sleuth:
   sampler:
    # 采样率介于0到1之间,1表示全部采样
    probability: 1

2.2.3、Controller

        对外提供的服务项

@GetMapping("/payment/zipkin")
public String paymentZipkin() {
    return "hi, i am Zipkin";
}

2.3、 服务消费者

2.3.1、POM和yaml文件同服务提供者

2.3.2、Controller

        调用服务提供者的url

@GetMapping("/consumer/payment/zipkin")
public String paymentZipkin() {
    String result = restTemplate.getForObject("http://localhost:8001" + "/payment/zipkin/", String.class);
    return result;
}

2.4、测试

1、启动服务提供者、服务消费者

2、打开浏览器,访问http://localhost:9411

        得到微服务调用关系:

         得到依赖关系:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值