java技术--SpringCloud:服务追踪Sleuth概念解析(19)

1.Spring Cloud Sleuth作用:

(1)微服务架构是一个分布式架构,它按业务划分服务单元
(2)一个分布式系统往往有很多个服务单元
   <1>由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位
   <2>主要体现在:
     2.1.一个请求可能需要调用很多个服务
     2.2.而内部服务的调用复杂性,决定了问题难以定位
   <3>所以微服务架构中,必须实现分布式链路追踪
   <4>去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的
   <5>从而达到每个请求的步骤清晰可见,出了问题,很快定位
   <6>Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案
(3)链路追踪开源组件:
   <1>Google的Dapper,Twitter的Zipkin,以及阿里的Eagleeye (鹰眼)等
   <2>Spring Cloud Sleuth集成了zipkin组件      

2.Spring Cloud Sleuth中的基本术语

(1)Spring Cloud Sleuth采用的是Google的开源项目Dapper的专业术语
   <1>Span:基本工作单元,发送一个远程调度任务就会产生一个Span
     1.1.Span是一个64位ID唯一标识的
     1.2.Span还有其他数据信息,比如摘要、时间戳事件、Span的ID、以及进度ID
   <2>Trace:一系列Span组成的一个树状结构
     2.1.Trace是用另一个64位ID唯一标识的
     2.2.请求一个微服务系统的API接口,这个API接口,需要调用多个微服务
     2.3.调每个微服务都会产生一个新Span,所有由这个请求产生的Span组成了这个Trace   
   <3>Annotation:用来及时记录一个事件的,一些核心注解用来定义一个请求的开始和结束
     3.1.这些注解包括以下几种:
     3.2.cs-Client Sent:客户端发送一个请求,这个注解描述了这个Span的开始
     3.3.sr-Server Received -服务端获得请求并准备开始处理它
       3.3.1.如果将其sr减去cs时间戳便可得到网络传输的时间
     3.4.ss-Server Sent(服务端发送响应):该注解表明请求处理的完成(当请求返回客户端)  
       3.4.1.如果ss的时间戳减去sr时间戳,就可以得到服务器请求的时间
     3.5.cr-Client Received (客户端接收响应):此时Span的结束
       3.5.1.如果cr的时间戳减去cs时间戳便可以得到整个请求所消耗的时间   

3.参考文档

(1)https://www.fangzhipeng.com/springcloud/2018/08/09/sc-f9-sleuth.html

你可能感兴趣的:(java技术Spring,Cloud专栏)