快速了解SpringCloud Sleuth --链路追踪 + Zipkin--数据搜集/存储/可视化

news2024/11/26 13:50:31

😀前言
本篇博文是关于SpringCloud Sleuth --链路追踪 + Zipkin–数据搜集/存储/可视化的基本介绍和使用,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • SpringCloud Sleuth+Zipkin
    • Sleuth/ZipKin 基础
      • 官网
      • Sleuth/Zipkin 是什么?
        • 概述(两张图)
          • Sleuth 和Zipkin 的简单关系图
      • Sleuth 工作原理
        • Span和Trace 在一个系统中使用Zipkin 的过程-图形化
          • 梳理
        • spans 的parent/child 关系图形化
          • 梳理
    • Sleuth/ZipKin-搭建链路监控实例
      • 需求说明/图解
      • 安装/使用Zipkin
        • 下载
        • 运行
        • 访问
      • 服务提供方集成Sleuth/Zipkin
      • 服务消费方集成Sleuth/Zipkin
      • 测试
      • 查看监控&分析结果

SpringCloud Sleuth+Zipkin

Sleuth/ZipKin 基础

官网

官网地址:https://github.com/spring-cloud/spring-cloud-sleuth

Sleuth/Zipkin 是什么?

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

image-20230828215416220

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

image-20230828215451950

说明:Sleuth 提供了一套完整的服务跟踪的解决方案并兼容Zipkin。
梳理: Sleuth 做链路追踪, Zipkin 做数据搜集/存储/可视化

Sleuth 工作原理

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

image-20230828215637528

梳理
  1. 表示一请求链路,一条链路通过Trace Id唯一标识, Span标识发起的请求信息,各span通过parent id关联起来。
  2. Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识。
  3. Span:基本工作单元,表示调用链路来源,通俗的理解span就是一次请求信息。
spans 的parent/child 关系图形化

image-20230831123347224

梳理
  1. 注意看标识的红线,后一个span节点的parentId 指向/记录了上一个Span解读。
  2. span就是一次请求信息。
  3. 多个Span集合就构成一条调用链路。
  4. 在span=C 这个节点存在分支。

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

需求说明/图解

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

image-20230831123746176

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

image-20230831123818096

安装/使用Zipkin

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

image-20230831124135618

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

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

image-20230831124206559

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

image-20230831124658846

服务提供方集成Sleuth/Zipkin

  1. 修改member-service-provider-10000 的pom.xml , 增加引入sleuth+zipkin
<!--包含了sleuth+zipkin-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<!-- 引入eureka-client 依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 修改member-service-provider-10000 的appliaction.yml , 指定Zipkin
server:
  port: 10000

spring:
  application:
    name: member-service-provider #配置应用的名称
  #配置sleuth 和 zipkin
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      #采样率 在0-1之间, 1表示全部采集
      probability: 1
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/e_commerce_center_db?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456

服务消费方集成Sleuth/Zipkin

  1. 修改member-service-consumer-80 的pom.xml , 增加引入sleuth+zipkin
<!--包含了sleuth+zipkin-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<!-- 引入eureka-client 依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 修改member-service-consumer-80 的appliaction.yml , 指定Zipkin
spring:
  application:
    name: member-service-consumer #配置应用的名称
  #配置sleuth 和 zipkin
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      #采样率 在0-1之间, 1表示全部采集
      probability: 1

测试

​ 启动e-commerce-eureka-server-9001
​ 启动member-service-provider-10000
​ 启动member-service-consumer-80
​ 浏览器: 浏览器输入: http://localhost/member/consumer/get/1

  1. 浏览器输入: http://localhost/member/consumer/get/1 , 多访问几次,方便看监控结果

image-20230903195031560

查看监控&分析结果

  1. 查看Zipkin : http://localhost:9411/zipkin/
  2. 选择某个服务,看结果

image-20230903195124074

image-20230903195145093

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

image-20230903195227299

image-20230903195248328

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

image-20230903195314848

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1070673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见源协议介绍

开源协议&#xff08;Open Source License&#xff09;是一种法律文档&#xff0c;用于规定如何使用、修改和分发开源软件和其他开源项目的规则和条件。这些协议允许创作者或组织将其创造的代码或作品以开放源代码的形式共享给他人&#xff0c;以促进协作、创新和知识共享。常见…

HttpClient实现爬虫开发

网络爬虫是一种高效获取网络信息的方式&#xff0c;而HttpClient是一个强大而灵活的Java库&#xff0c;提供了方便的API和丰富的功能&#xff0c;使其成为开发高效且灵活的网络爬虫的理想选择。本文将分享如何利用HttpClient库进行网络爬虫开发&#xff0c;帮助您更好地理解并实…

NSA 和 CISA 联合揭露当下十大网络安全错误配置

10月5日&#xff0c;美国国家安全局 (NSA) 和网络安全与基础设施安全局 (CISA) 公布了十大目前最常见的网络安全错误配置&#xff0c;这些错误由红蓝团队在大型组织网络中发现。 根据发布的联合报告&#xff0c;团队评估了国防部 (DoD)、联邦民事行政部门 (FCEB)、州和地方政府…

解决程序员百分百问题pip终极杀手

文章目录 pip中国版镜像源永久版中国镜像源pip添加多个中国版镜像源无敌版pip中的小细节 pip中国版镜像源 Python中使用pip安装包&#xff0c;常用的国内镜像有&#xff1a; 例如&#xff1a; Python中使用pip安装包&#xff0c;常用的国内镜像有&#xff1a;清华大学镜像&am…

Mac 点击桌面 出现黑边框 解决

1、桌面黑框效果 2、解决&#xff1a;设置为 仅在台前调度中

电脑散热——液金散热

目录 1.简介 2.传统硅脂与液金导热区别 3.特点 4.优点 5.为什么液金技术名声不太好 6.使用方法 1.简介 凡是对于电脑基础硬件有所了解的人&#xff0c;都知道硅脂是如今高性能电脑设备中必不可少的东西。芯片表面和散热器接触面&#xff0c;虽然肉眼看上去是非常光滑的金属…

vue实现拖拽排序

在业务中列表拖拽排序是比较常见的需求&#xff0c;常见的JS拖拽库有Sortable.js&#xff0c;Vue.Draggable等&#xff0c;大多数同学遇到这种需求也是更多的求助于这些JS库&#xff0c;其实&#xff0c;使用HTML原生的拖放事件来实现拖拽排序并不复杂&#xff0c;结合Vue的tra…

【运维笔记】Docker 安装Kibana-7.4.0(在线Docker版)

一、准备工作&#xff1a; Centos 7.5 安装 Docker-24.0.6 详细步骤&#xff08;避坑版&#xff09;&#xff1a; https://blog.csdn.net/seesun2012/article/details/133674191注意1&#xff1a;本文的命令使用的是 root 用户登录执行&#xff0c;不是 root 的话所有命令前面…

山西电力市场日前价格预测【2023-10-09】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-09&#xff09;山西电力市场全天平均日前电价为575.84元/MWh。其中&#xff0c;最高日前电价为1500.00元/MWh&#xff0c;预计出现在17: 30-20: 00。最低日前电价为218.27元/MWh&#x…

go的面向对象学习

文章目录 面向对象编程(上)1.问题与解决思路2.结构体1》Golang语言面向对象编程说明2》结构体与结构体变量(实例/对象)的关系的示意图3》入门案例(using struct to solve the problem of cat growing) 3.结构体的具体应用4.创建结构体变量和访问结构体字段5.struct类型的内存分…

Snowflake:一家由数据驱动的生成式人工智能公司

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;从长远来看&#xff0c;生成式人工智能只会进一步增加数据的重要性。 &#xff08;2&#xff09;尽管宏观环境面临挑战&#xff0c;但Snowflake(SNOW)仍然保持着强劲的增长率。 …

Map,Set和哈希表的使用

目录 两种模型 Map的使用 Map接口方法的使用 注意事项 Set的使用 哈希表 冲突 如何避免冲突 在我们日常生活中,会进行一些查找操作,比如根据姓名查询考试成绩,根据姓名查询联系方式等在查找是进行一些插入和删除操作,即动态查找. 而Map和Set是一种适合动态查找的集合容…

springboot整合thymeleaf模板引擎

1.什么是thyeleaf模板引擎 Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。 是新一代 Java 模板引擎&#xff0c;它支持 HTML 原型&#xff0c;其文件后缀为“.html”&#xff0c;因此它可以直接被浏览器打开&#xff0c;此时浏览器会忽略未定义的 Thymeleaf 标签…

C语言:字符字符串

目录 字符 字符串 输出各字符串 输出各类型长度——strlen函数返回字符串长度&#xff0c;需指定头文件 字符 a;char ch z;// char ch "z"; // err 字符类型只能是单引号// char ch zh; // err 字符类型只能是单个字符 字符串 这种由双引号&#xff08;Doub…

SpringBoot+Vue3外卖项目构思

SpringBoot的学习&#xff1a; SpringBoot的学习_明里灰的博客-CSDN博客 实现功能 前台 用户注册&#xff0c;邮箱登录&#xff0c;地址管理&#xff0c;历史订单&#xff0c;菜品规格&#xff0c;购物车&#xff0c;下单&#xff0c;菜品浏览&#xff0c;评价&#xff0c;…

软考程序员考试大纲(2023)

文章目录 前言一、考试说明1.考试目标2.考试要求3&#xff0e;考试科目设置 二、考试范围考试科目1&#xff1a;计算机与软件工程基本知识1&#xff0e;计算机科学基础2&#xff0e;计算机系统基础知识3&#xff0e;系统开发和运行知识4&#xff0e;网络与信息安全基础知识5&am…

你的librosa和scikit-learn打架了吗?

被这个问题困扰好久&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 我的原来版本librosa0.7.1 和 scikit-learn1.3.1 一直拆了按&#xff0c;按…

好物周刊#19:开源指北

https://github.com/cunyu1943/JavaPark https://yuque.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. Vditor 一款浏览器端的 Markdown 编辑器&#xff0c;支持所见即所得、…

Android---Class 对象在执行引擎中的初始化过程

一个 class 文件被加载到内存中的步骤如下图所示&#xff1a; 装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流&#xff0c;然后根据字节流创建 java.lang.Class 对象的过程。 1. ClassLoader 通过一个类的全限定名&#xff08;包名类名&#xff09;来查找 .class 文件…

10款录屏软分析与选择使用,只看这篇文章就轻松搞定所有,高清4K无水印录屏,博主UP主轻松选择

录屏软件整理 如下为录屏软件&#xff0c;通过思维导图展示分析介绍&#xff1a; https://www.drawon.cn/template/details/6522bd5e0dad9029a0b528e1 如下为整理的录屏软件列表 名称产地价格支持的平台下载地址说明OBS国外免费开源windows/linux/machttps://obsproject.co…