Sleuth 使用|学习笔记

简介: 快速学习 Sleuth 使用

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第三阶段Sleuth 使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/685/detail/11899


Sleuth 使用

内容介绍

一、启动

二、总结


一、启动

Sleuth 里有三个词 trace、span、annocation。

接下来通过一个入门案例,切身感受 Sleuth 链路追踪的效果,通过看一下输出的日志能更加明确的了解什么是 trace span 了。

做一下集成,只需要在微服务中加上 Sleuth 依赖,通过之前的项目案例整合Sleuth,完成入门案例的编写

修改父工程,引入 Sleuth 依赖。

<!--链路追踪 Sleuth-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

这个版本就不用再写了

所有微服务停掉,再重新依次启动三项微服务。

跑完后再次查看是否启动完。

启动微服务,调用之后,我们可以在控制台观察到 sleuth 的日志输出。

2019-12-08 17:29:35.935 INFO

[gateway, 5399d5cb061971bd,5399d5cb061971bd,false]

2019-12-0817:29:35.997 INFO

[gateway, 5399d5cb061971bd,5399d5cb061971bd, false]

2019-12-08 17:29:36.009 INFO

[gateway, 5399d5 b061971bd,5399d5cb061971bd,false]

2019-12-08 17:29:36.047 INFO

[gateway, 5399d5cb061971bd,5399d5cb061971bd, false]

2019-12-08 17:29:36.050 INFO

[gateway,5399d5cb061971bd,5399d5cb061971bd,false]

微服务名称,traceld,spanid,是否将链路的追踪结果输出到第三方平台

第一个:[api-gateway,

3977125f73391553,3977125f73391553,false]

第二个:[service-order,3977125f73391553,

57547b5bf71f8242,false]

第三个:[service-product,3977125f73391553,

449f5b3f3ef8d5c5,false]

其中5399d5cb061971bd是 Traceld,

5399d5cb061971bd是 Spanld,

依次调用有一个全局的 Traceld,,false 是查看是否输出到其他平台。将调用链路串起来。

通过这三个就能区分出每个微服务,仔细分析每个微服务的日志,不难看出请求的具体过程。


二、总结

怎么知道问题发生在何处,这个时候有一种ui界面,可以更方便的看到结果,通过日志文件查看信息,当微服务越来越多是,日志文件会越来越多。

查看日志文件并不是一个很好的方法,当微服务越来越多日志文件也会越来越多,通过 Zipkin 组件可以将日志收集聚合,并进行可视化展示和全文检索。

Zipkin 的作用是收集、存储、查找和展现,会把链路过程中的时间节点以界面的形式展示给我们,通过界面排查问题就比较容易,接下来就是要运用 Zipkin 把数据收集起来,展示出来。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Ubuntu 开发工具 Python
解决阿里云远程连接yum无法安装问题(Ubuntu 22.04)
解决阿里云远程连接yum无法安装问题(Ubuntu 22.04)
2545 2
|
消息中间件 存储 网络协议
从原理到实战,手把手教你在项目中使用RabbitMQ
RabbitMQ 的文章之前写过,但是当时给的示例是 Demo 版的,这篇文章主要是结合之前写的理论知识,将 RabbitMQ 集成到技术派项目中。 话不多说,上文章目录: 下面我们先回顾一下理论知识,如果对这块知识已经清楚的同学,可以直接跳到实战部分。 1. 消息队列 1.1 消息队列模式 消息队列目前主要 2 种模式,分别为“点对点模式”和“发布/订阅模式”。 点对点模式 一个具体的消息只能由一个消费者消费,多个生产者可以向同一个消息队列发送消息,但是一个消息在被一个消息者处理的时候,这个消息在队列上会被锁住或者被移除并且其他消费者无法处理该消息。 需要额外注意的是,如果消费者
1318 5
|
设计模式 网络协议 Java
06.动态代理设计模式
本文详细介绍了动态代理设计模式,包括其必要性、概念、实现方式及案例分析。动态代理允许在运行时动态创建代理对象,增强代码复用性和灵活性,减少类膨胀。文章通过对比静态代理,深入解析了动态代理的实现机制,如基于接口和类的动态代理,以及其在Retrofit中的应用。同时,讨论了动态代理的优势和潜在问题,如性能开销和调试难度。最后,提供了丰富的学习资源链接,帮助读者进一步理解和掌握动态代理。
208 1
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
消息中间件 数据采集 中间件
RabbitMQ的使用—实战
RabbitMQ的使用—实战
447 1
|
Ubuntu Linux 数据库
Linux:报错“command not found: yum”及yum和apt-get的区别
Linux:报错“command not found: yum”及yum和apt-get的区别
2121 0
Linux:报错“command not found: yum”及yum和apt-get的区别
|
资源调度 算法 物联网
【信道编码】1 无线通信发展历程与挑战、信道分类、多径信道、单径信号传输与检测
【信道编码】1 无线通信发展历程与挑战、信道分类、多径信道、单径信号传输与检测
535 3
|
算法 安全 程序员
详解 DES加密技术 | 凯撒密码 | 栅栏密码
详解 DES加密技术 | 凯撒密码 | 栅栏密码
1205 0
|
Java 调度 Maven
Springboot实战篇--Springboot框架通过@Scheduled实现定时任务
Spring Boot的Scheduled定时任务无需额外Maven依赖,通过`@EnableScheduling`开启。任务调度有两种方式:fixedRate和fixedDelay,前者任务结束后立即按设定间隔执行,后者在任务完成后等待设定时间再执行。更灵活的是cron表达式,例如`0 0 3 * * ?`表示每天3点执行。实现定时任务时,需注意默认单线程执行可能导致的任务交错,可通过自定义线程池解决。
1442 0
|
Linux Shell 开发工具
C++ 的 ini 配置文件读写/注释库 inicpp 用法 [ header-file-only ]
这是一个C++库,名为inicpp,用于读写带有注释的INI配置文件,仅包含一个hpp头文件,无需编译,支持C++11及以上版本。该库提供简单的接口,使得操作INI文件变得容易。用户可通过`git clone`从GitHub或Gitee获取库,并通过包含`inicpp.hpp`来使用`inicpp::iniReader`类。示例代码展示了读取、写入配置项以及添加注释的功能,还提供了转换为字符串、双精度和整型的函数。项目遵循MIT许可证,示例代码可在Linux环境下编译运行。
1512 0