SpringCloud Sleuth+Zipkin

news2024/11/19 10:19:41

SpringCloud Sleuth+Zipkin

官网

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

Sleuth/Zipkin 是什么?

概述(两张图)

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

image.png

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

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

梳理: Sleuth 做链路追踪, Zipkin 做数据搜集/存储/可视化

Sleuth 工作原理

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

image.png

梳理

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

spans 的parent/child 关系图形化

image.png

梳理

注意看标识的红线,后一个span节点的parentId 指向/记录了上一个Span 解读

  1. span就是一次请求信息
  2. 多个Span集合就构成一条调用链路
  3. 在span=C 这个节点存在分支

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

需求说明/图解

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

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

image.png

安装/使用Zipkin

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

image.png

  1. 下载得到: 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.png

访问

浏览器输入:http://localhost:9411/zipkin/

image.png

服务提供方集成Sleuth/Zipkin

  1. 修改member-service-provider-10000 的pom.xml , 增加引入sleuth+zipkin
 <!--引入sleuth + zipkin 依赖 说明 1. 使用的是版本仲裁 2.starter-zipkin包含了sleuth  -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>
        <!--引入eureka-client 场景启动器starter: 使用版本仲裁-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
  1. 修改member-service-provider-10000 的appliaction.xml , 指定Zipkin
server:
  port: 10000spring:
  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: 自己的密码
  1. 修改member-service-consumer-80 的appliaction.xml , 指定Zipkin

注意这个的pom.xml和上面的配置一模一样这理就不再重复了

修改member-service-consumer-80 的appliaction.xml , 指定Zipkin

server:
  port: 80spring:
  application:
    name: member-service-consumer-80
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      ##采样率在0-1 之间,1 表示全部采集
      probability: 1#配置eureka-client

测试

1 启动e-commerce-eureka-server-9001 2 启动member-service-provider-10000 3 启动member-service-consumer-80 4 浏览器: 浏览器输入: http://localhost/member/consumer/get/1多访问几次,方便看监控结果

image.png

查看监控&分析结果

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

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

image.png

image.png

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

image.png

image.png
4. 查看服务调用的依赖关系

image.png

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

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

相关文章

WhatsApp如何推动更多销售额

WhatsApp在全球拥有超过2亿用户&#xff0c;已成为最突出的通信应用程序。对于企业来说&#xff0c;这提供了一个有利可图的机会&#xff0c;可以大规模推广他们的产品和服务&#xff0c;而成本可能只是传统营销成本的一小部分。 如果您拥有电子商务业务&#xff0c;WhatsApp可…

《逆商》我们该如何应对坏事件

关于作者 作者保罗史托兹博士是逆商理论的提出者和奠基人&#xff0c;他曾被《人力资源》杂志评为 “全球十大有影响力的思想家”。在二十多年前提出逆商理论之后&#xff0c;他一直在致力于帮助各行各业的人士提高逆商&#xff0c;在实践中积累了该领域大量的数据和经验。 关…

典型环节的仿真实验(自控实验一)

实验目的 1&#xff09;了解MATLAB Simulink的组成&#xff1b; 2&#xff09;掌握线性系统Simulink仿真模型的建立方法&#xff1b; 3&#xff09;通过典型环节阶跃响应的仿真&#xff0c;了解典型环节的动态特性&#xff1b; 4&#xff09;了解MATLAB进行线性系统仿真的相…

2023新版Spring6全新讲解-核心内容之IoC

Spring核心之IoC 一、IoC概念介绍 1.IoC 介绍 IoC 是 Inversion of Control 的简写&#xff0c;译为“控制反转”&#xff0c;它不是一门技术&#xff0c;而是一种设计思想&#xff0c;是一个重要的面向对象编程法则&#xff0c;能够指导我们如何设计出松耦合、更优良的程序。…

如何获得铁粉?

铁粉是指那些非常喜欢某个人、品牌、产品或组织的人群&#xff0c;他们对所支持的对象非常忠诚&#xff0c;会在各种场合下宣传、支持和捍卫他们的偶像。铁粉通常会在社交媒体上关注他们的偶像、分享他们的内容、购买他们的产品或服务&#xff0c;并与其他铁粉互动和交流。他们…

JavaScript中的生成器函数(Generator Functions)

简介&#xff1a; 生成器函数&#xff08;Generator Functions&#xff09;是JavaScript中的一种特殊类型函数&#xff0c;它允许开发者在函数内部产生多个值并逐步返回&#xff0c;与传统函数一次返回单个值的方式不同。本文将介绍生成器函数的特性、优缺点以及如何使用它们&a…

【重新定义matlab强大系列十】函数normalize进行归一化数据

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

2. css表格属性、文本属性、列表属性、边距属性、尺寸属性

1. 表格属性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width…

每日一题——四数之和(双指针解法)

每日一题 四数之和 注&#xff1a; 如果大家没做过题目两数之和、三数之和&#xff0c;强烈建议先去做做&#xff0c;也可以参考我之前写的博客&#xff0c;这样做这一题会事半功倍&#xff0c;且由于本题思路和三数之和十分类似&#xff0c;故对于解题思路&#xff0c;也不会…

涨点神器:注意力机制---多头上下文集成(Context Aggregation)的广义构建模块,助力小目标检测,暴力涨点

1.数据集性能验证 在crack道路缺陷检测任务中,多头上下文集成(Context Aggregation)的广义构建模块实现暴力涨点mAP50从0.954提升至0.992 🏆🏆🏆🏆🏆🏆Yolov5/Yolov7魔术师🏆🏆🏆🏆🏆🏆 ✨✨✨魔改网络、复现前沿论文,组合优化创新 🚀🚀🚀…

第一章.The Learning Problem

第一章.The Learning Problem 1.1 The Learning Problem 1.机器学习的概念&#xff1a; 机器学习就是机器从数据中总结经验。从数据中找出某种规律或者模型&#xff0c;并用他来解决某种实际问题。 2.机器学习的应用场景 1).事物本身存在某种潜在规律 2).某些问题难以使用普…

海豚调度器完全设置东八区

为了兼容全世界不同时区&#xff0c;默认情况下&#xff0c;海豚调度器使用的是 UTC 0 时区&#xff0c;包括保存到数据库表中的数据时区&#xff0c;以及展示到页面上的时区。 如果我们想在页面上看到东八区时间&#xff0c;则需要在页面上手动选择上海时区&#xff0c;如下图…

调优圣经:零基础精通Jmeter分布式压测,10Wqps+超高并发

高并发压测的场景 在40岁老架构师尼恩的读者社群&#xff08;50&#xff09;中&#xff0c;很多小伙伴拿不到offer&#xff0c;或者拿不到好的offer。 尼恩经常给大家 优化项目&#xff0c;优化简历&#xff0c;挖掘技术亮点。 在指导简历的过程中&#xff0c; Java 调优是一…

【Vue】一:Vue的基础

文章目录 1.第一个Vue程序1.1 创建Vue实例1.2 将Vue实例挂载到某个位置 2. 模板语句数据来源3. Vue实例的数据对象4. template配置项详解 1.第一个Vue程序 1.1 创建Vue实例 &#xff08;1&#xff09;创建Vue实例 创建一个Vue实例&#xff1a;new Vue() &#xff08;2&#x…

SpringCloud Sentinel集成Gateway和实时监控

目录 1 Sentinel集成Gateway1.1 Sentinel对网关支持1.2 GateWay集成Sentinel 2 Sentinel控制台2.1 Sentinel控制台安装2.2 接入控制台2.3 可视化管理2.3.1 实时监控2.3.2 流控规则2.3.3 降级规则2.3.4 热点数据 1 Sentinel集成Gateway 参看&#xff1a; https://github.com/al…

Linux网络编程——Day12 两种高效的并发模式

今天继续学习高性能服务器框架&#xff0c;上一篇关于高性能服务器的基础知识连接如下&#xff1a; Linux网络编程—Day11 高性能服务器程序框架_Jane_Librastar的博客-CSDN博客https://blog.csdn.net/qq_43797135/article/details/130834354建议先看上一篇哦~ 两种高效的并发…

就业内推 | 京东云专场,IP/NP以上证书,15薪,员工旅游

01 京东云 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1. 整体网络的部署和运维&#xff0c;包括网络新建、扩容、及变更等&#xff1b; 2. 保障网络及相关业务的稳定运行&#xff0c;对问题和故障进行跟踪并最终解决&#xff1b; 3. 与业务部门或客户密切配合&…

网络编程先导知识

目录 1.什么是网络协议 2.什么是Socket Socket主要类型 3.C/S和B/S架构 4.网络字节序和主机字节序 5.局域网和广域网 6.IP地址和端口的概念 1.什么是网络协议 为了在计算机网络中做到有条不紊地交换数据&#xff0c;就必须遵守一些事先约定好的规则。这些规则明确规定了所…

【P30】JMeter 事务控制器(Transaction Controller)

文章目录 一、事务控制器&#xff08;Transaction Controller&#xff09;参数说明二、测试计划设计2.2.1、勾选 Generate parent sample2.2.1、勾选 Include duration of timer and pre-post processors in generated sample 一、事务控制器&#xff08;Transaction Controlle…

Ubuntu22.04安装MySQL8

在 Ubuntu 22.04 上安装 MySQL 8&#xff0c;可以按照以下步骤进行&#xff1a; 安装MySQL需要在root用户下 sudo su -更新软件包列表&#xff1a; sudo apt update安装 MySQL 8&#xff1a; sudo apt install mysql-server安装过程中会提示设置 MySQL root 用户的密码。 确认…