分布式系统服务追踪
Sleuth+Zipkin
简介
链路追踪组件有Google的Dapper,Twitter和Zipkin以及阿里的Eagleeye等
Span(跨度)
:基本工作单元,发送一个远程调度任务就会产生一个Span,Span是一个64位ID唯一的标识,Trace是用另一个64位ID唯一标识的,Span还有其他数据信息,比如摘要、时间戳时间、Span的ID、以及进度ID
Trace(跟踪)
:一系列Span组成的一个树状结构。请求一个微服务系统的API接口,这个API接口,需要调用多个微服务,调用每个微服务都会产生一个新的Span,所有由这个请求产生的Span组成了这个Trace
Annotation(标注)
:用来及时记录一个事件的,一些核心注解用来定义一个请求的开始和结束
cs
:Client Send 客户端发送一个请求,这个注解描述了这个Span的开始
sr
:Server Received 服务端获得请求并准备开始处理它,如果将其sr减去cs时间戳便可以得出网络传输的时间
ss
:Server Send 服务端发送响应,该注解表明请求处理的完成(当请求返回客户端),如果ss的时间戳减去sr时间戳,就可以得到服务器请求的时间
cr
:Client Received 客户端接收响应,此时Span的结束,如果cr的时间戳减去cs时间戳便可以得到整个请求所消耗的时间
使用
安装zipkin
1 2 3 4 5
| # 数据存储到内存中 docker run -d -p 9411:9411 openzipkin/zipkin
# 数据存储到es docker run --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=192.168.0.12:9200 openzipkin/zipkin-dependencies
|
依赖
1 2 3 4 5
| <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
|
配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| spring: zipkin: base-url: http://127.0.0.1:9411/ discoveryClientEnabled: false sender: type: web sleuth: sampler: probability: 1
|
相关文章
SpringCloud
服务注册与发现
服务降级
服务调用
服务网关
Stream消息驱动
SpringCloud-OpenFeign问题
SpringCloud-GateWay工具类
DockerCompose常用软件配置
SpringQuartz动态定时任务