Spring Cloud Alibaba(14)---SpringCloudAlibaba整合Sleuth
SpringCloudAlibaba整合Sleuth
上一篇有写过Sleuth概述,Spring Cloud Alibaba(13)---Sleuth概述
这篇我们开始通过示例来演示链路追踪。
一、环境准备
既然是演示链路追踪,那么就需要有多个微服务之间进行调用,这里的项目也是在之间已经搭建好的基础上加上Sleuth组件,具体链路是这个的:

从图中可以看出,这里一个完整的链路是 一个请求通过网关服务,然后转发到 订单微服务,然后订单微服务中会去调商品服务。
所以这里涉及三个微服务
mall-gateway: 网关服务。端口号:8001。
mall-goods: 商品服务。 端口号:6001。
mall-order: 订单服务。端口号:7001。
这三个服务都已经注册到nacos中,如图

二、SpringCloudAlibaba整合Sleuth
注意 这里不把所有代码都复制在这里,完整项目代码,会放到github上,在文章下方会提供地址。
1、pom.xml
在需要进行链路追踪的项目中(服务网关、商品服务、订单服务)添加 spring-cloud-starter-sleuth 依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
2、测试
访问地址如下:
#通过网关访问订单服务
http://localhost:8001/mall-order/api/v1/goods_order/getGoodsByFeign?goodsId=1
接下来我们来看各个微服务打印的日志
网关服务(mall-gatway)
2021-05-19 19:17:46.677 INFO [mall-gateway,4ef9402f9a9500a1,4ef9402f9a9500a1,true] 92553 --- [ctor-http-nio-3] com.jincou.getway.CustomGatewayFilter
订单服务(mall-order)
2021-05-19 19:17:47.284 INFO [mall-order,4ef9402f9a9500a1,94a660c5c94cffb4,true] 92561 --- [nio-7001-exec-1] c.j.order.controller.OrderController
商品服务(mall-goods)
2021-05-19 19:17:49.077 INFO [mall-goods,4ef9402f9a9500a1,4c48de8ab2b6377a,true] 92566 --- [nio-6001-exec-1] c.j.goods.controller.GoodsController
解释下含义 [mall-gateway,4ef9402f9a9500a1,4ef9402f9a9500a1,true]
第⼀个值,spring.application.name的值。
第⼆个值,4ef9402f9a9500a1 ,sleuth⽣成的⼀个ID,叫Trace ID,⽤来标识⼀条请求链路,⼀条请求链路中包含⼀个Trace ID,多个Span ID。
第三个值,4ef9402f9a9500a1、spanId 基本的⼯作单元,获取元数据,如发送⼀个http。
第四个值:true,是否要将该信息输出到zipkin服务中来收集和展示。
我们可以看出这三个微服务的TraceID是一样的,都为4ef9402f9a9500a1。代表是一个请求链路,但是4c48de8ab2b6377a是不一样的,每个请求都是自己的SpanID
总结 查看日志文件并不是一个很好的方法,当微服务越来越多日志文件也会越来越多,查询工作会变得越来越麻烦,下一篇我们通过 Zipkin 进行链路跟踪。Zipkin 可以将日志聚合,并进行可视化展示和全文检索。
github地址 nacos-feign-sentinel-gatway-sleuth
少说多做,句句都会得到别人的重视;多说少做,句句都会受到别人的忽视。(14)
Spring Cloud Alibaba(14)---SpringCloudAlibaba整合Sleuth的更多相关文章
- Spring Cloud Alibaba(15)---Sleuth+Zipkin
SpringCloudAlibaba整合Sleuth+Zipkin 有关Sleuth之前有写过两篇文章 Spring Cloud Alibaba(13)---Sleuth概述 Spring Cloud ...
- Spring Cloud Alibaba 新版本发布:众多期待内容整合打包加入!
在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也终于发布了最新的版本.该版本距离上一次发布,过去了整整4个月!下面就随我一起看看,这个大家期待已久的版本都有哪些 ...
- Spring Cloud Alibaba基础教程:Sentinel使用Nacos存储规则
通过上一篇<使用Sentinel实现接口限流>的介绍,相信大家对Sentinel已经有了初步的认识.在Spring Cloud Alibaba的整合封装之下,接口限流这件事情可以非常轻易的 ...
- Spring Cloud Alibaba(10)---Sentinel控制台搭建+整合SpringCloudAlibaba
上一篇博客讲了Sentinel一些概念性的东西 Spring Cloud Alibaba(9)---Sentinel概述 这篇博客主要讲 Sentinel控制台搭建,和 整合SpringCloudAl ...
- Spring Cloud Alibaba Sentinel 整合 Feign 的设计实现
作者 | Spring Cloud Alibaba 高级开发工程师洛夜 来自公众号阿里巴巴中间件投稿 前段时间 Hystrix 宣布不再维护之后(Hystrix 停止开发...Spring Cloud ...
- Spring Cloud Alibaba 实战(十三) - Sleuth调用链监控
本文概要:大白话剖析调用链监控原理,然后学习Sleuth,Zipkin,然后将Sleuth整合Zipkin,最后学习Zipkin数据持久化(Elasticsearch)以及Zipkin依赖关系图 实战 ...
- Spring Cloud Alibaba学习笔记(15) - 整合Spring Cloud Gateway
Spring Cloud Gateway 概述 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于Netty.Reactor以及WEbFlux构建,它 ...
- Spring Cloud Alibaba学习笔记(1) - 整合Spring Cloud Alibaba
Spring Cloud Alibaba从孵化器版本毕业:https://github.com/alibaba/spring-cloud-alibaba,记录一下自己学习Spring Cloud Al ...
- Spring Cloud Alibaba - Spring Cloud Stream 整合 RocketMQ
Spring Cloud Stream 简介 在微服务的开发过程中,可能会经常用到消息中间件,通过消息中间件在服务与服务之间传递消息,不管你使用的是哪款消息中间件,比如RabbitMQ.Kafka和R ...
随机推荐
- hdu 5063 不错的小想法题(逆向处理操作)
题意: 刚开始的时候给你一个序列,长度为n,分别为a[1]=1,a[2]=2,a[3]=3,a[4]=4...a[n]=n,然后有4种操作如下: Type1: O 1 call fun1( ...
- Python第三章-字符串
第三章 字符串 3.1 基本字符串操作 Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改. { website = 'http://ww ...
- Portswigger web security academy:OS command injection
Portswigger web security academy:OS command injection 目录 Portswigger web security academy:OS command ...
- 【pytest系列】- fixture测试夹具详解
如果想从头学起pytest,可以去看看这个系列的文章! https://www.cnblogs.com/miki-peng/category/1960108.html fixture的优势 pyt ...
- python-内置函数-callable,chr,ord,bytes,随机验证码生成
s="老男人" bytes(s,encoding="utf-8") 随机验证码的实现方法: 大写字母: li = [] for i in range(6): t ...
- 『政善治』Postman工具 — 7、Postman中保存请求(Collections集合)
目录 1.创建Collection 2.保存Request请求 3.查看保存的请求 4.Collection下还可以创建文件夹 5.补充:Postman中的变量 6.总结 1.创建Collection ...
- .NET Core 对象( Transient、Scope、Singleton )生命周期详解 (对象创建以及释放)
首先我们在VS2019中创建一个.NET Core的控制台程序,方便演示: 需要安装两个依赖包 Microsoft.Extensions.DependencyInjection 依赖注入对象的具体实现 ...
- Linux系统运行netstat命令时的过三关斩一将
1.简介 这篇文章主要是记录在日常工作中遇到的一些问题,将其都总结整合到一起,方便查看,提高工作效率.小伙伴们看到标题可能觉得奇怪,不是过五关斩六将而是过三关斩一将.慢慢地往后看发现其中奥秘. 2.过 ...
- Pulsar部署和实践(一)
前言 本地Docker部署Pulsar消息代理实现消息发布和消息订阅 介绍 相关概念,后面有时间再花时间整理下. 实践步骤 1.使用dokcer本地部署pulsar docker run -it \ ...
- 再议GCC编译时的静态库依赖顺序问题
相关博文1:http://blog.chinaunix.net/uid-20682147-id-76330.html相关博文:http://blog.chinaunix.net/uid-2068214 ...