• SpringCloud Sleuth+Zipkin


    SpringCloud Sleuth+Zipkin

    1.Sleuth/ZipKin 基础

    1.官网

    https://github.com/spring-cloud/spring-cloud-sleuth

    2.Sleuth/Zipkin 是什么?

    1.概述:在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节 点调用, 来协同产生最后的请求结果,每一个请求都会形成一条复杂的分布式服务调用链 路

    image-20220914215325551

    1. 链路中的任何一环出现高延时或错误都会引起整个请求最后的失败, 因此对整个服务 的调用进行链路追踪和分析就非常的重要

    2. Sleuth 和 Zipkin 的简单关系图

    image-20220914215346742

    4.一句话: Sleuth 提供了一套完整的服务跟踪的解决方案 并兼容 Zipkin

    3.Sleuth 工作原理

    1. Span 和 Trace 在一个系统中使用 Zipkin 的过程-图形化

    image-20220914215528370

    说明

    (1)表示一请求链路,一条链路通过Trace Id唯一标识 ,Span标识发起的请求信息,各span 通过parent id关联起来

    (2)Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识

    (3)Span:基本工作单元,表示调用链路来源,通俗的理解span就是一次请求信息

    1. spans 的 parent/child 关系图形化

    image-20220914215723874

    说明

    (1)主要红线表示部分,后一个span节点的parentId 指向/记录 了上一个Span 解读

    (2) span就是一次请求信息

    (3)多个Span集合就构成一条调用链路

    (4) 在span=C 这个节点存在分支

    2.Sleuth/ZipKin-搭建链路监控实例

    1.需求说明/图解

    1. 在浏览器输入 : http://localhost/member/consumer/get/1 , 会返回对应的结果(如图)

    2. 要求: 通过 Sleuth 和 Zipkin 可以对服务调用链路进行监控, 并在 Zipkin 进行显示(如 图)

    image-20220914215934917

    2.安装/使用 Zipkin

    1.下载

    1.下载地址

    https://repo1.maven.org/maven2/io/zipkin/java/zipkin-server/2.12.9/

    image-20220914220100215

    2.下载得到 : zipkin-server-2.12.9-exec.jar

    2.运行
    1. 把 zipkin-server-2.12.9-exec.jar 放到指定的目录 , 比如 D:\zipkin
    2. 进入 cmd , 执行指令运行: java -jar zipkin-server-2.12.9-exec.jar

    image-20220914223655699

    3.访问
    1. 浏览器输入:http://localhost:9411/zipkin/

      image-20220914223843483

    3.服务提供方集成 Sleuth/Zipkin

    1. 修改 member-service-provider-10000 的 pom.xml , 增加引入 sleuth+zipkin

      
      <dependency>
         <groupId>org.springframework.cloudgroupId>
         <artifactId>spring-cloud-starter-zipkinartifactId>
      dependency>
      
      • 1
      • 2
      • 3
      • 4
      • 5
    2. 修改 member-service-provider-10000 的 appliaction.yml , 指定 Zipkin

    spring:
      application:
        name: member-service-provider
        #配置sleuth和zipkin
      zipkin:
        #这里是在本机,结合实际所在服务器进行配置
        base-url: http://localhost:9411/zipkin/
      sleuth:
        sampler:
          #采样率,在0-1之间,1表示全部采集
          probability: 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.服务消费方集成 Sleuth/Zipkin

    1. 修改 member-service-consumer-80 的 pom.xml , 增加引入 sleuth+zipkin

      
      <dependency>
         <groupId>org.springframework.cloudgroupId>
         <artifactId>spring-cloud-starter-zipkinartifactId>
      dependency>
      
      • 1
      • 2
      • 3
      • 4
      • 5
    2. 修改 member-service-consumer-openfeign-80 的 appliaction.yml , 指定 Zipkin

    spring:
      application:
        name: member-service-consumer-openfeign-80
      zipkin:
        #这里是在本机,结合实际所在服务器进行配置
        base-url: http://localhost:9411/zipkin/
      sleuth:
        sampler:
          #采样率,在0-1之间,1表示全部采集
          probability: 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5.测试

    image-20220914230234336

    6.查看监控&分析结果

    1. 查看 Zipkin : http://localhost:9411/zipkin/

    image-20220914233044597

    1. 选择某个服务,看结果

    image-20220914233148064

    1. 查看一次调用链路的深度,以及该链路包含请求, 各个请求耗时,找到请求瓶颈,为 优化提供依据(重要)

    image-20220914233208536

    1. 查看服务调用的依赖关系

    image-20220914233236588

  • 相关阅读:
    Linux系统中驱动格式基本实现
    前端基础5——UI框架Layui
    java8:关闭钩子shutdown hook
    linux驱动34:tasklet小任务机制
    漫谈计算机网络:概述 ------ 从起源开始到分层协议结构,初识究竟什么是计算机网络?
    java108-StringBuilder连接字符串和删除操作
    根据水声和摄影测量数据建立数字测深模型
    vue的模板编译原理
    Win10系统- 远程桌面使用及出现的 问题
    前端foreach循环遍历数组时
  • 原文地址:https://blog.csdn.net/qq_44981526/article/details/126862555