Spring Cloud | Spring Cloud Sleuth 服务追踪
by Botao Xiao
服务追踪
所有的业务都是由多个微服务构成的,随着业务的扩大,单个业务将会由很多的的微服务实现,这就意味着,当某个业务出现了问题,我们将会很难知道该业务从哪儿来,到哪儿去,是哪个业务出了问题,造成了缓慢。此时我们就需要服务追踪。
术语
- Span(跨度): Span服务调用的基本单元,我个人的理解是,span实际上是一次RPC的调用,每一次的请求就是一个Span。
- Trace(痕迹):Trace是由Span组成的,所有的Span将所有的结点连接起来,形成了一张调用图。
- 标注(Annotation):用于及时记录事件的存在。用于定义请求开始和结束的一些核心注释是:
- cs - 客户端发送 - 客户端发出请求。这个注释描述了跨度的开始。
- sr - 服务器已收到 - 服务器端收到请求并开始处理。如果从这个时间戳中减去cs时间戳,将会收到网络延迟。
- ss - 服务器发送 - 在请求处理完成时(当响应被发送回客户端时)注释。如果从这个时间戳中减去sr时间戳,将会收到服务器端处理请求所需的时间。
- cr - 客户端收到 - 表示跨度结束。客户端已经成功接收到服务器端的响应。如果从这个时间戳中减去cs时间戳,那么将会收到客户端接收服务器响应所需的全部时间。
流程
- 打开Zipkin的服务器程序。通过cmd打开。
- 实现两个相互调用的微服务。
- 通过访问http://http://localhost:9411 来找到调用流程。可以发现服务之间的相互调用关系。
Reference
Subscribe via RSS