目录
sleuth
介绍
相关术语
Trace
Span
Annotation
使用
依赖
参考
Zipkin
介绍
使用
下载最新版并使用
客户端集成
参考
sleuth
介绍
Spring Cloud Sleuth 能够跟踪您的请求和消息,以便您可以将该通信与相应的日志条目相关联。 您还可以将跟踪信息导出到外部系统以可视化延迟。 Spring Cloud Sleuth 直接支持 OpenZipkin 兼容系统。
相关术语
Trace
(一条完整链路–包含很多span(微服务接口))
由一组Trace Id(贯穿整个链路)相同的Span串联形成一个树状结构。为了实现请求跟踪,当请求到达分布式系统的入口端点时,只需要服务跟踪框架为该请求创建一个唯一的标识(即TraceId),同时在分布式系统内部流转的时候,框架始终保持传递该唯一值,直到整个请求的返回。那么我们就可以使用该唯一标识将所有的请求串联起来,形成一条完整的请求链路。
Span
代表了一组基本的工作单元。为了统计各处理单元的延迟,当请求到达各个服务组件的时候,也通过一个唯一标识(SpanId)来标记它的开始、具体过程和结束。通过SpanId的开始和结束时间戳,就能统计该span的调用时间,除此之外,我们还可以获取如事件的名称。请求信息等元数据。
Annotation
用它记录一段时间内的事件,内部使用的重要注释:
cs(Client Send)客户端发出请求,开始一个请求的生命
sr(Server Received)服务端接受到请求开始进行处理, sr-cs = 网络延迟(服务调用的时间)
ss(Server Send)服务端处理完毕准备发送到客户端,ss - sr = 服务器上的请求处理时间
cr(Client Reveived)客户端接受到服务端的响应,请求结束。 cr - sr = 请求的总时间
使用
依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
参考
sleuth 官网文档
Zipkin
介绍
Zipkin 是 Twitter 的一个开源项目,它基于Google Dapper实现,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储展现、查找和我们可以使用它来收集各个服务器上请求链路的跟踪数据。
使用
下载最新版并使用
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
启动完成打开 http:you_ip:9411 打开UI 界面
客户端集成
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
相关配置
sleuth:
sampler:
probability: 1.0
zipkin:
base-url: http://192.168.178.128:9411
discovery-client-enabled: false
参考
OpenZipkin 官网