微服务 springcloud 11 sleuth 链路跟踪,sleuth + zipkin 链路分析

news2024/12/24 8:41:45

随着系统规模越来越大,微服务之间调用关系变得错综复杂,一条调用链路中可能调用多个微服务,任何一个微服务不可用都可能造整个调用过程失败
spring cloud sleuth 可以跟踪调用链路,分析链路中每个节点的执行情况
01.微服务中添加 spring cloud sleuth 依赖
修改以下微服务的 pom.xml,添加 sleuth 依赖
sp02-item-service
sp03-user-service
sp04-order-service
sp11-zuul
编辑起步依赖,分别 sleuth 依赖
在这里插入图片描述

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

02.在控制台查看链路跟踪日志
通过 zuul 网关,访问 order-service
http://localhost:3001/order-service/112233
四个微服务的控制台日志中,可以看到以下信息:
[服务id,请求id,span id,是否发送到zipkin]
请求id:请求到达第一个微服务时生成一个请求id,该id在调用链路中会一直向后面的微服务传递
span id:链路中每一步微服务调用,都生成一个新的id
[zuul,6c24c0a7a8e7281a,6c24c0a7a8e7281a,false]
[order-service,6c24c0a7a8e7281a,993f53408ab7b6e3,false]
[item-service,6c24c0a7a8e7281a,ce0c820204dbaae1,false]
[user-service,6c24c0a7a8e7281a,fdd1e177f72d667b,false]

03.sleuth + zipkin 链路分析
zipkin 可以收集链路跟踪数据,提供可视化的链路
链路数据抽样比例
默认10%的链路数据会被发送到zipkin服务。可以配置修改抽样比例

spring:
  sleuth:
    sampler:
      probability: 0.1

zipkin 服务
下载 zipkin 服务器,https://github.com/openzipkin/zipkin
在这里插入图片描述
启动zipkin时,连接到rabbitmq

java -jar zipkin-server-2.12.9-exec.jar --zipkin.collector.rabbitmq.uri=amqp://admin:admin@192.168.64.140:5672

在这里插入图片描述
http://localhost:9411/zipkin

在这里插入图片描述
微服务添加 zipkin 起步依赖
修改以下微服务
sp02-item-service
sp03-user-service
sp04-order-service
sp11-zuul

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>


如果没有配置过 spring cloud bus,还需要添加 rabbitmq 依赖和连接信息
pom.xml 添加 spring cloud bus 依赖
在这里插入图片描述

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-amqp</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-bus</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.amqp</groupId>
			<artifactId>spring-rabbit-test</artifactId>
			<scope>test</scope>
		</dependency>

配置文件中添加 rabbitmq 连接信息
在以下配置文件中修改:
config中的4个配置文件
sp12-config项目的application.yml
注意:
连接信息请修改成你的连接信息
config项目需要提交

spring:
  ……
  rabbitmq:
    host: 192.168.64.140
    port: 5672
    username: admin
    password: admin

在这里插入图片描述

启动并访问服务,访问 zipkin 查看链路分析
http://localhost:3001/order-service/112233
刷新访问多次,链路跟踪数据中,默认只有 10% 会被收集到zipkin

访问 zipkin
http://localhost:9411/zipkin
在这里插入图片描述

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

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

相关文章

如何使用UpdraftPlus迁移备份网站到新网站?

这个问题是关于将您的站点克隆或迁移到新的网站URL的问题。如果您想克隆一个站点进行测试&#xff0c;或者在新版本上线之前移动到新主机并进行测试&#xff0c;以及许多其他类似情况&#xff0c;迁移尤其有用。 在下面的示例中&#xff0c;我们迁移到一个完全新的 WordPress …

搭建Hadoop高可用框架分布式集群

搭建Hadoop高可用框架分布式集群 一.基础配置 1.创建虚拟机&#xff0c;修改虚拟机的主机名 2.修改网络配置 master:192.168.6.200 slave1:192.168.6.201 slave2:192.168.6.202 3.互ping测试 4.sudo授权 5.安装vim编辑器 6.配置网络映射 master配置映射 master向slave1传递映…

MATLAB 之 Simulink系统的仿真与分析

这里写目录标题 一、Simulink 系统的仿真与分析1. 设置仿真参数1.1 Solver 参数设置1.2 Data lmport/Export 参数设置 2. 运行仿真与仿真结果分析2.1 运行仿真2.2 仿真结果分析 一、Simulink 系统的仿真与分析 系统的模型建立之后&#xff0c;选择仿真参数和数值算法&#xff…

LabVIEW自适应屏幕分辨率的两种方法

文章目录 前言一、方案1&#xff1a;组合缩放1、举例2、验证 二、方案2&#xff1a;分隔栏匹配窗格1、举例2、验证 前言 前阵子做的一个项目是在显示器分辨率为 2560*1600&#xff0c;缩放选项为 150% 的笔记本上开发的&#xff0c;但是当 vi 文件在另一台显示器分辨率为 1920…

ThingsBoard IoT Gateway 专栏 分享 前言

最近有朋友询问tb-gateway相关的问题&#xff0c;于是抽业余时间查看了一下官方文档&#xff0c;并做了一些尝试和案例。接下来我会将这些分享给大家。这也是一个系列&#xff0c;将会和我的ThingsBoard专栏放在一起。 ThingsBoard IoT Gateway 能够帮助你将连接到传统和第三方…

一次Android APK打包的报错

打包的时候报了一个错 没有记下来 但是解决方法是 打开Window-> Package Manager 移除这个&#xff08;这个是Unity的广告组件

杰西·利弗莫尔股票大作手操盘术策略

文章目录 上升趋势演变多次回撤回升&#xff0c;区间震荡向上突破&#xff0c;恢复上升趋势前期回升高点下挫&#xff0c;趋势逆转警告信号向下突破&#xff0c;确认下降趋势 下降趋势演变多次回升回撤&#xff0c;区间震荡向下突破&#xff0c;恢复下降趋势前期回撤低点反弹&a…

mysql-大数据的上传(load data)

文章目录 1. 大批量数据的上传如果使用insert语句就会很慢&#xff0c;可以使用load data的方式 1. 大批量数据的上传如果使用insert语句就会很慢&#xff0c;可以使用load data的方式 如下&#xff0c;我建立了一个这样的数据表&#xff0c; 2. 我要将以下数据插入数据表&am…

基于FPGA的RC滤波器设计实现

目录 简介&#xff1a; 传递函数 FPGA代码实现 总结 简介&#xff1a; RC滤波器的特性基本情况介绍 RC一阶低通滤波介绍&#xff1b;RC滤波器电路简单&#xff0c;抗干扰性强&#xff0c;有较好的低频性能&#xff0c;并且选用标准的阻容元件易得&#xff0c;所以在工程测…

【滤波】平滑

%matplotlib inline#format the book import book_format book_format.set_style()简介 当你考虑未来的数据时&#xff0c;卡尔曼滤波器的性能并不是最优的。例如&#xff0c;假设我们在跟踪飞行器&#xff0c;最新的观测值突然偏离的很离谱&#xff0c;就像这样&#xff08;我…

PHP的pack/unpack

前言&#xff1a;直接参照官网。 PHP: pack - Manual PHP中文手册 PHP中国镜像 php 国内镜像 PHP官方网站 PHP: unpack - Manual PHP中文手册 PHP中国镜像 php 国内镜像 PHP官方网站 1、作用 &#xff08;1&#xff09;pack&#xff1a;将数据打包成二进制字符串。将输入数据…

链表刷题(9-11)

目录 相交链表 环形链表 环形链表Ⅱ 相交链表 力扣 第一种思路&#xff1a;判断尾节点地址是否相同&#xff0c;时间复杂度为O(N^2)。 第二种思路&#xff1a;(节点对齐)记录两个链表节点个数&#xff0c;再根据节点差设置两个快慢指针进行next节点比对。时间复杂度O(N)(3N)…

PHP 税务申报征收系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 税务申报征收系统 是一套完善的WEB设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/87959340https://downl…

spring boot security之前后端分离配置

前言 spring boot security默认配置有一个登录页面&#xff0c;当采用前后端分离的场景下&#xff0c;需要解决两个问题&#xff1a; 前端有自己的登录页面&#xff0c;不需要使用spring boot security默认的登录页面登录相关接口允许匿名访问 因此需要自定义相关实现。 自…

【C51 --- 单片机学习历程与分享】

51单片机学习历程与分享 开篇 --- 认识单片机1、什么是单片机&#xff1f;2、51单片机主要资源3、STC89C51 芯片简介4、单片机脚位判断5、51单片机的应用领域6、如何学好51单片机&#xff1f;7、参考文献 开篇 — 认识单片机 前言&#xff1a; 1.本专栏适合有一定C语言功底的读…

数据结构与算法:数组和字符串

1 数组 1.1 集合、列表、数组的联系与区别 集合&#xff1a;由一个或多个确定的元素所构成的整体。类型不一定相同、确定、无序、互异。 列表&#xff08;又称线性列表&#xff09;&#xff1a;按照一定的线性顺序&#xff0c;排列而成的数据项的集合。类型不一定相同、有序…

所有独立站都适合做谷歌推广吗?怎么做好谷歌推广?

大家有没有这种困扰&#xff1a;是不是所有的独立站都适合用谷歌来打广告呢&#xff1f;我的行业能不能用Google Ads来推广&#xff1f;如果我刚刚起步&#xff0c;我应该开启哪种类型的广告呢&#xff1f;让我们一起来揭秘吧&#xff01; 如果你是一个独立站卖家&#xff0c;…

用异或计算只出现一次的数字

因为与0异或的都是数字本身&#xff0c;数字本身和数字本身异或是等于0&#xff0c;应用这个定理&#xff0c;我们来做这个题 链接: leetcode用异或计算只出现一次的数字 class Solution { public:int singleNumber(vector<int>& nums) {size_t v 0;for(size_t i …

Git指南 - 刚提的commit 怎么找不到了(游离分支)?

在有一次使用git时&#xff0c;我提交commit后&#xff0c;并未push&#xff0c;然后直接切到了当前分支的某个tag&#xff0c;最后我想切回来的时候&#xff0c;竟然找不到我刚才提交commit的节点了… 关联篇 Git指南 - 你该掌握的那些基础认知和首次配置Git指南 - 项目实战中…

uni-app处理请求发送表单类型的数据

我在本地开发了一个分页的接口 这里 我设置的是 form-data 参数类型 要的是个表单类型的数据 然后呢 我按传统PC端的方式处理了数据 <template><view class "box"><view class"management"></view></view> </template…