11 Spring Cloud Sleuth学习

Spring Cloud Sleuth

介绍

Spring Cloud Sleuth是Spring Cloud 的一个组件,主要功能是在分布式系统中提供服务链路追踪的解决方案。

 

微服务架构是一个分布式架构,微服务系统按业务划分服务单元,一个微服务系统往往有多个服务单元,一个请求往往需要调用多个服务才能完成,如果在服务调用的过程中出现了错误,定位问题就变的异常艰难,因为每一个服务都有很多请求,即使在当前服务中找到了异常的内容,但是前置信息却没那没容易找到,这时候就需要链路追踪了。

 

链路追踪的必要性:假设在没有链路追踪的情况下,A服务依次调用了B、C、D服务,其中调用D服务的时候出问题了,A服务返回异常,能够掌握的信息往往就只有发起请求时的数据,需要一步一步的将调用其他服务时的参数整理出来,如果这些数据之间存在依赖关系,那这项排错的成本会非常高

 

基本术语

  1. Span:基本工作单元,发送一个远程调度任务就会产生一个Span,Span是用一个64位ID唯一标识的。Span中包含其他信息:摘要、时间戳事件、Span的ID以及进程ID
  2. Trace:由一系列Span组成,呈树状结构。标识微服务系统的一次请求,请求中每次调用其他的服务都会生成一个Span,所以的Span组成Trace。
  3. Annotation:记录一个事件,包含一些核心注解,这些注解用于定义一个请求的开始和结束。
  1. cs-Client-Sent:标记客户端发送
  2. sr-Server Received:标记服务端接收客户端发送请求的事件。sr减去cs便是网络传输的时间
  3. ss-Server Sent:标识服务端发送响应时间。表示服务端已经处理完请求。ss减去sr表示服务请求处理的时长
  4. cr-Client Received:标识客户端接收响应时间。cr减去cs便是整个请求消耗的时间

 

通过HTTP记录链路数据

流程:通过gateway-service代理请求user-service,链路数据存储到zipkin-server,再持久化到mysql数据库

gateway-service

引入jar包依赖

 

添加注解和配置

 

 

user-service

引入jar包依赖

 

添加接口和配置

 

 

zipkin-server

引入jar包依赖

 

添加注解和配置

 

 

设置mysqlstorage 的bean

 

结果描述

访问网关接口,然后网关转发信息调用user-service的api,过程中所有数据信息发送zipkin-server,并持久化到mysql

接口访问

 

zipkin-server界面展示,请求地址:http://localhost:9411;

 

链路的详细信息:

 

数据库中也有相应的记录

 

 

数据库中trace_id为String转换为Long后的值

内容来自《深入理解Spring Cloud与微服务构建》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值