• SpringCloud-Sleuth服务追踪


    简介

    Spring Cloud Sleuth组件来实现微服务追踪。它可以追踪每个网络请求,了解它们经过了哪些微服务,延迟多少,每个请求所耗费的时间等。

    zipkin

    Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System)。其主要功能是聚集来自各个异构系统的实时监控数据。

    下载zipkin

    阿里云下载zipkin

    启动zipkin-server

    访问http://127.0.0.1:9411/zipkin/,打开客户端

    zipkin服务追踪

    搭建spring cloud项目

    以Consul做为注册中心,搭建spring cloud项目

    创建maven子模块,命名为cloud-consumer80-zipkin

    ①导入依赖

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.cloudgroupId>
    4. <artifactId>spring-cloud-starter-zipkinartifactId>
    5. dependency>
    6. <dependency>
    7. <groupId>org.springframework.cloudgroupId>
    8. <artifactId>spring-cloud-starter-openfeignartifactId>
    9. dependency>
    10. <dependency>
    11. <groupId>org.springframework.cloudgroupId>
    12. <artifactId>spring-cloud-starter-consul-discoveryartifactId>
    13. dependency>
    14. <dependency>
    15. <groupId>org.springframework.bootgroupId>
    16. <artifactId>spring-boot-starter-webartifactId>
    17. dependency>
    18. <dependency>
    19. <groupId>org.springframework.bootgroupId>
    20. <artifactId>spring-boot-starter-actuatorartifactId>
    21. dependency>
    22. dependencies>

    ②创建application.yml配置文件,配置zipkin

    1. server:
    2. port: 80
    3. spring:
    4. application:
    5. name: consumer-zipkin
    6. cloud:
    7. consul:
    8. host: localhost
    9. port: 8500
    10. discovery:
    11. service-name: ${spring.application.name}
    12. #服务追踪sleuth,zipkin相关配置
    13. zipkin:
    14. base-url: http://localhost:9411 #zipkin服务端地址
    15. sleuth:
    16. sampler:
    17. probability: 1

    ③创建启动类

    1. @EnableFeignClients
    2. @SpringBootApplication
    3. public class ConsumerZipkin80 {
    4. public static void main(String[] args) {
    5. SpringApplication.run(ConsumerZipkin80.class, args);
    6. }
    7. }

    ④创建service接口

    1. @Component
    2. @FeignClient("cloud-provider") //服务提供者在注册中心里的昵称
    3. public interface IConsumerService {
    4. //对应服务提供者getUUID方法
    5. @GetMapping("/provider/getUUID")
    6. public String getUUID();
    7. }

    ⑤创建controller控制类

    1. @RequestMapping("consumer")
    2. @RestController
    3. public class ConsumerController {
    4. @Autowired
    5. private IConsumerService consumerService;
    6. @GetMapping("/getUUID")
    7. public String getUUID() {
    8. return consumerService.getUUID();
    9. }
    10. }

    测试

    ①依次启动Consul注册中心,Zipkin服务端,服务提供者cloud-provider8001和服务消费者cloud-consumer80-zipkin

    ②浏览器访问http://localhost/consumer/getUUID,向服务消费者发送请求

     ③浏览器访问http://127.0.0.1:9411/zipkin/,打开zipkin客户端,点击RUN QUERY追踪请求

     

  • 相关阅读:
    nginx配置IP白名单
    CSS学习(1)-选择器
    【送书活动】借助ChatGPT和Python,轻松实现办公自动化✨
    STM8S系列基于STVD标准库外设库开发,PWM输出实现LED呼吸灯效果
    商业化广告--概念理解--DSP SSP RTB 是一个怎样的过程
    低代码测试自动化
    水文中的Top-Down和bottom-up
    类和对象(上)
    自动驾驶入门:预测
    WebGPU 入门:绘制一个三角形
  • 原文地址:https://blog.csdn.net/weixin_46899412/article/details/127687840