《Spring Cloud与Docker微服务架构实战》周立 --笔记
10.1 为什么要实现微服务跟踪
微服务之间通过网络进行通信,如果能够跟踪每个请求,了解请求经过哪些微服务(了解信息如何在服务之间流动),请求耗时,网络延时,业务逻辑,耗费时间等标志,就能够更好的分析系统瓶颈,解决系统问题,因此,微服务跟踪很有必要
10.2 Spring Cloud Sleuth简介
Spring Cloud Sleuth为Spring Cloud提供了分布式跟踪的解决方案,Sleuth中的术语:
-
span(跨度)
基本工作单元,用一个64位ID唯一标识,包含描述,时间戳span ID,span父ID等。 -
trace(跟踪)
一组共享“root span”的span组成的树状结构称为trace。trace也用一个64位ID唯一标识。 -
annotation(标注)
用来记录时间的存在,其中,核心annotation用来定义请求的开始和结束。- CS(Client Send客户端发送),描述客户端发起一个请求。
- SR(Server Received服务器端接收),服务器端获得请求并准备处理它
- SS(Server Send服务器端发送),表明服务器端完成请求处理
- CR(Client Received客户端接收):span结束标志,客户端成功接收服务器端响应。
微服务追踪示意图:请求一次经过service1–service2–service3–service4时,span,trace,annotation的变化。