• Sleuth+Zipkin 链路追踪


     源码:https://gitee.com/GXQ205153964/sleuth-parent.git

    简介: 

    Spirng Cloud Sleuth 其实是个工具,它在整个分布式系统中能跟踪一个用户请求的过程,捕获这些跟踪数据,就能构建微服务的整个调用链路的视图,这是调试和监控微服务的关键工具。

    1. 耗时分析
    2. 可视化错误
    3. 链路优化

    Zipkin是Twitter的一个开源的项目 ,他致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集 存储 查找和展现。

    入门:

    流程:

    1. 安装启动zipkin。 java-jar zipkin.jar
    2. 访问zipkin web界面。http://localhost:9411
    3. 在服务提供方和消费方分别引入 sleuth和zipkin依赖

    链接:https://pan.baidu.com/s/1Ircbif6-JLr7-2xFhLmmCw 
    提取码:2015 

    cmd界面运行这个jar包 

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

     基本代码,生产者和消费者

    照着这个搭建一个Eureka-server-sleuth sleuth-cousumer 和sleuth-provider

    spirngcloud Eureka服务治理(注册中心)

    参考:springcloud代码里的Eureka server模块 cousumer和provider模块 

    引入sleuth和zipkin

    parent

    pom.xml

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <groupId>com.itheimagroupId>
    6. <artifactId>sleuth-parentartifactId>
    7. <packaging>pompackaging>
    8. <version>1.0-SNAPSHOTversion>
    9. <modules>
    10. <module>sleuth-providermodule>
    11. <module>sleuth-consumermodule>
    12. <module>eureka-server-sleuthmodule>
    13. modules>
    14. <parent>
    15. <groupId>org.springframework.bootgroupId>
    16. <artifactId>spring-boot-starter-parentartifactId>
    17. <version>2.1.0.RELEASEversion>
    18. <relativePath/>
    19. parent>
    20. <properties>
    21. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    22. <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    23. <java.version>1.8java.version>
    24. <spring-cloud.version>Greenwich.RELEASEspring-cloud.version>
    25. properties>
    26. <dependencyManagement>
    27. <dependencies>
    28. <dependency>
    29. <groupId>org.springframework.cloudgroupId>
    30. <artifactId>spring-cloud-dependenciesartifactId>
    31. <version>${spring-cloud.version}version>
    32. <type>pomtype>
    33. <scope>importscope>
    34. dependency>
    35. dependencies>
    36. dependencyManagement>
    37. project>

     eureka-server-sleuth

    application.yml

    1. server:
    2. port: 8761
    3. eureka:
    4. instance:
    5. hostname: localhost # 主机名
    6. client:
    7. service-url:
    8. defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
    9. register-with-eureka: false # 是否将自己的路径 注册到eureka上。eureka server 不需要的,eureka provider client 需要
    10. fetch-registry: false # 是否需要从eureka中抓取路径。eureka server 不需要的,eureka consumer client 需要
    11. server:
    12. enable-self-preservation: false # 关闭自我保护机制
    13. eviction-interval-timer-in-ms: 3000 # 检查服务的时间间隔

     pom.xml

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.bootgroupId>
    4. <artifactId>spring-boot-starter-webartifactId>
    5. dependency>
    6. <dependency>
    7. <groupId>org.springframework.cloudgroupId>
    8. <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
    9. dependency>
    10. dependencies>

     consumer

    application.yml

    1. server:
    2. port: 9000
    3. eureka:
    4. instance:
    5. hostname: localhost # 主机名
    6. client:
    7. service-url:
    8. defaultZone: http://localhost:8761/eureka
    9. spring:
    10. application:
    11. name: feign-consumer # 设置当前应用的名称。将来会在eureka中Application显示。将来需要使用该名称来获取路径
    12. zipkin:
    13. base-url: http://localhost:9411/ # 设置zipkin的服务端路径
    14. sleuth:
    15. sampler:
    16. probability: 1 # 采集率 默认 0.1 百分之十。
    17. logging:
    18. level:
    19. com.itheima: debug

     pom.xml

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.bootgroupId>
    4. <artifactId>spring-boot-starter-webartifactId>
    5. dependency>
    6. <dependency>
    7. <groupId>org.springframework.bootgroupId>
    8. <artifactId>spring-boot-starter-testartifactId>
    9. <scope>testscope>
    10. dependency>
    11. <dependency>
    12. <groupId>org.springframework.bootgroupId>
    13. <artifactId>spring-boot-starter-actuatorartifactId>
    14. dependency>
    15. <dependency>
    16. <groupId>org.springframework.cloudgroupId>
    17. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    18. dependency>
    19. <dependency>
    20. <groupId>org.springframework.cloudgroupId>
    21. <artifactId>spring-cloud-starter-openfeignartifactId>
    22. dependency>
    23. <dependency>
    24. <groupId>org.springframework.bootgroupId>
    25. <artifactId>spring-boot-starter-loggingartifactId>
    26. dependency>
    27. <dependency>
    28. <groupId>org.springframework.cloudgroupId>
    29. <artifactId>spring-cloud-starter-netflix-hystrixartifactId>
    30. dependency>
    31. <dependency>
    32. <groupId>org.springframework.cloudgroupId>
    33. <artifactId>spring-cloud-starter-zipkinartifactId>
    34. dependency>
    35. dependencies>

     provider

    application.yml

    1. server:
    2. port: 8000
    3. eureka:
    4. client:
    5. service-url:
    6. defaultZone: http://localhost:8761/eureka
    7. spring:
    8. application:
    9. name: feign-provider
    10. zipkin:
    11. base-url: http://localhost:9411/ # 设置zipkin的服务端路径
    12. sleuth:
    13. sampler:
    14. probability: 1 # 采集率 默认 0.1 百分之十。

    pom.xml

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.bootgroupId>
    4. <artifactId>spring-boot-starter-webartifactId>
    5. dependency>
    6. <dependency>
    7. <groupId>org.springframework.bootgroupId>
    8. <artifactId>spring-boot-starter-actuatorartifactId>
    9. dependency>
    10. <dependency>
    11. <groupId>org.springframework.cloudgroupId>
    12. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    13. dependency>
    14. <dependency>
    15. <groupId>org.springframework.cloudgroupId>
    16. <artifactId>spring-cloud-starter-zipkinartifactId>
    17. dependency>
    18. dependencies>

    结果测试

  • 相关阅读:
    C语言| 输出菱形*
    聊聊ArrayList源码深度解析
    locust的使用
    《QT从基础到进阶·十五》用鼠标绘制矩形(QGraphicsView、QPainter、QGraphicsRectItem)
    Linux学习-数据类型学习
    蒙特卡洛树搜索(Monte Carlo Tree Search)揭秘
    LQ0209 颠倒的价牌【枚举+进制】
    Spring之注解开发
    机器学习从入门到放弃:Transfomer-现代大模型的基石
    2022 IDC中国数字金融论坛 | 筑基金融信创 共话金融科技新愿景
  • 原文地址:https://blog.csdn.net/qq_51497041/article/details/126235215