SpringCloud学习笔记(十二)Sleuth 分布式请求链路跟踪

article/2025/9/20 22:14:28

目录

一、Sleuth介绍

1、为什么会出现这个技术?需要解决哪些问题?

2、是什么

二、搭建链路监控步骤

1、zipkin搭建安装

1)下载

2)运行jar

3)运行控制台 

4)术语

2、服务提供者 cloud-provider-payment8001

pom.xml

 application.yml

controller层 

3、服务消费者(调用方)cloud-consumer-order80

pom.xml

 application.yml

controller层 

 4、测试


一、Sleuth介绍

1、为什么会出现这个技术?需要解决哪些问题?

在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。

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

2、是什么

Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin

image-20220322180945364

二、搭建链路监控步骤

1、zipkin搭建安装

1)下载

SpringCloud从F版起已不需要自己构建Zipkin Server了,只需调用jar包即可

zipkin 下载地址:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/zipkin-server-2.12.9-exec.jar

2)运行jar

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

3)运行控制台 

控制台:http://localhost:9411/zipkin/

4)术语

完整的调用链路: 一条链路通过Trace Id唯一标识,Span标识发起的请求信息,各span通过parent id 关联起来

image-20220322181811124

—条链路通过Trace ld唯一标识,Span标识发起的请求信息,各span通过parent id关联起来。 

 image-20220322181859871

 image-20220322181913301

名词解释:

  • Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
  • span:表示调用链路来源,通俗的理解span就是一次请求信息

2、服务提供者 cloud-provider-payment8001

cloud-provider-payment8001

pom.xml

改 pom.xml,增加:

<!--包含了sleuth+zipkin-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

 application.yml

 改 application.yml,添加以下内容

spring:zipkin:base-url: http://localhost:9411  # zipkin 地址sleuth:sampler:# 采样率值 介于0-1之间 ,1表示全部采集probability: 1

controller层 

改业务类 PaymentController增加:

    @GetMapping("/payment/zipkin")public String paymentZipkin(){return "hi, i am paymentzipkin server fall back, welcome to atguigu, O(n_n)O 哈哈~";}

3、服务消费者(调用方)cloud-consumer-order80

pom.xml

改 pom.xml,增加:

<!--包含了sleuth+zipkin-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

 application.yml

 改 application.yml,添加以下内容

spring:zipkin:base-url: http://localhost:9411  # zipkin 地址sleuth:sampler:# 采样率值 介于0-1之间 ,1表示全部采集probability: 1

controller层 

改业务类OrderController,增加:

    @GetMapping("/consumer/payment/zipkin")public String paymentZipkin(){String result = restTemplate.getForObject(PAYMENT_URL+"/payment/zipkin",String.class);return result;}

 4、测试

访问:localhost/consumer/payment/zipkin

在控制台查看调用链路


http://chatgpt.dhexx.cn/article/A7DQkhNC.shtml

相关文章

MySQL5种索引类型

一、简介 MySQL目前主要有以下几种索引类型&#xff1a; 1.普通索引 2.唯一索引 3.主键索引 4.组合索引 5.全文索引 二、语句 CREATE TABLE table_name[col_name data type] [unique|fulltext][index|key][index_name](col_name[length])[asc|desc] 1.unique|fulltext为可选…

mysql索引类型和索引方式

1.什么是索引 在MySQL中&#xff0c;索引&#xff08;index&#xff09;也叫做“键&#xff08;key&#xff09;”&#xff0c;它是存储引擎用于快速找到记录的一种数据结构。 2.索引的分类 在MySQL中&#xff0c;通常我们所指的索引类型&#xff0c;有以下几种&#xff1a;…

Mysql索引的类型(单列索引、组合索引 btree索引 聚簇索引等)

一、索引的类型 Mysql目前主要有以下几种索引类型&#xff1a;FULLTEXT&#xff0c;HASH&#xff0c;BTREE&#xff0c;RTREE。 FULLTEXT 即为全文索引&#xff0c;目前只有MyISAM引擎支持。其可以在CREATE TABLE &#xff0c;ALTER TABLE &#xff0c;CREATE INDEX 使用&…

mysql索引类型有哪些?

在Mysql数据库当中&#xff0c;我们经常会谈到Sql语句&#xff0c;当然也会谈到索引优化&#xff0c;那么在数据库当中有哪些索引类型呢&#xff0c;博主在这里进行分享&#xff0c;希望对大家能有所帮助。 目录 1、B-Tree索引&#xff1a; 2、Hash索引&#xff1a; 3、Full…

什么是索引?Mysql目前主要的几种索引类型

一、索引 MySQL索引的建立对于MySQL的高效运行是很重要的&#xff0c;索引可以大大提高MySQL的检索速度。 打个比方&#xff0c;如果合理的设计且使用索引的MySQL是一辆兰博基尼的话&#xff0c;那么没有设计和使用索引的MySQL就是一个人力三轮车。 索引分单列索引和组合索引。…

Mysql索引类型与索引方法

写在前面&#xff1a; 乍一看这两个概念可能有点混&#xff0c;先上一张发图。 索引类型就是我们平常说的唯一索引&#xff0c;主键索引&#xff0c;组合索引等索引类型。 我们都知道索引是一种数据结构&#xff0c;到底我们建的索引应该以什么样的结构存储呢&#xff1f;存储…

MYSQL 索引类型

一、索引类型 在数据库表中&#xff0c;对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表 代码如下: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录&#xff0c;其中有一条&#xff1a;555…

常见索引类型

日常开发工作中&#xff0c;涉及到的数据存储&#xff0c;要做查询优化或想深入了解存储引擎&#xff0c;需要对索引知识有个起码的了解&#xff0c;下面介绍下最常见的四种索引结构。 位图索引哈希索引BTREE索引倒排索引 1、位图索引&#xff08;BitMap&#xff09; 位图索引…

数据库的五种索引类型

本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方 首先:先假设有一张表,表的数据有10W条数据,其中有一条数据是nicknamecss,如果要拿这条数据的话需要些的sql是 SELECT * FROM award WHERE nickname css 一般情况下,在没…

mysql索引有哪些类型?

MySQL目前主要有的索引类型为&#xff1a;普通索引、唯一索引、主键索引、组合索引、全文索引。 通过给字段添加索引可以提高数据的读取速度&#xff0c;提高项目的并发能力和抗压能力。索引优化时mysql中的一种优化方式。索引的作用相当于图书的目录&#xff0c;可以根据目录…

你知道多少种索引?

前言 嗨&#xff0c;大家好&#xff0c;我是fancy呀。 在工作中我们常常用到索引&#xff0c;无论是普通索引还是唯一索引&#xff0c;都是一些常用的索引方式&#xff0c;目的就是为了提高查询效率&#xff0c;避免业务请求超时等问题。那么&#xff0c;当你在使用索引的时候…

动态规划算法 | 最长递增子序列

通过查阅相关资料发现动态规划问题一般就是求解最值问题。这种方法在解决一些问题时应用比较多&#xff0c;比如求最长递增子序列等。 有部分人认为动态规划的核心就是&#xff1a;穷举。因为要求最值&#xff0c;肯定要把所有可行的答案穷举出来&#xff0c;然后在其中找最值…

求最长递增子序列个数——C++

声明&#xff1a;本文原题主要来自力扣&#xff0c;记录此博客主要是为自己学习总结&#xff0c;不做任何商业等活动&#xff01; 一、下面是原题描述 给定一个未排序的整数数组&#xff0c;找到最长递增子序列的个数。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递…

最长递增子序列(LIS)

最长递增子序列&#xff08;LIS&#xff09; 问题描述&#xff1a; 求一个序列的最长递增子序列&#xff0c;这样的子序列是允许中间越过一些字符的&#xff0c;即留“空”。 例如&#xff1a;4 2 3 1 5 的最长递增子序列为 2 3 5&#xff0c;长度为 3 。 解法&#xff1a;…

【Leetcode】最长递增子序列问题及应用

文章目录 最长递增子序列问题及应用300. 最长递增子序列面试题 17.08. 马戏团人塔354. 俄罗斯套娃信封问题面试题 08.13. 堆箱子1691. 堆叠长方体的最大高度406. 根据身高重建队列 最长递增子序列问题及应用 300. 最长递增子序列 请参考 【Leetcode】计算最长系列&#xff08…

输出最长递增子序列

目录 题目&#xff1a; 输入描述: 输出描述: 示例1 输入 输出 示例2 输入 输出 说明 备注: 思路分析&#xff1a; 改进&#xff1a; 得到最长子序列&#xff1a; 易错点&#xff1a; 代码展示&#xff1a; 题目&#xff1a; 给定数组arr&#xff0c;设长度为n&…

NC91 最长递增子序列

NC91 最长递增子序列 这道题n的范围是1e5&#xff0c;因此不能使用常规的dp[i]&#xff0c;表示以i结尾的最大的子序列&#xff0c;因为这个时间复杂度是n方级别。因此要换一种算法。 贪心二分&#xff0c;时间复杂度为O(nlogn) 下面说说贪心二分的解法&#xff0c;举例说明基…

Vue3 最长递增子序列详解

Vue3 最长递增子序列研究 本文初衷 彻底讲清楚 Vue3 源码中实现最长递增子序列的算法。 概念名词 **最长递增子序列&#xff1a;**在一个给定的数值序列中&#xff0c;找到一个子序列&#xff0c;使得这个子序列元素的数值依次递增&#xff0c;并且这个子序列的长度尽可能地…

Java 最长递增子序列_最长递增子序列问题 Java

最长递增子序列问题 LIS(longest increasing subsequence) 例如 给定一个数列&#xff0c;长度为N&#xff0c; 求这个数列的最长上升(递增)子数列(LIS)的长度. 以 1, 7, 2, 8, 3, 4 为例。 这个数列的最长递增子数列是 1 2 3 4&#xff0c;长度为4&#xff1b; 次长的长度为3&…

最长递增子序列

问题 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4. 解法1:最长公共子序列法 这个问题可以转换为最长公共子序列问题。如…