分布式链路监控-zipkin

当系统随之服务的增加,系统变得越来越复杂,问题的排查难度预发增加。当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。而zipkin就是开源分布式系统调用跟踪的佼佼者
Zipkin 是 Twitter 的一个开源项目,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接口。
zipkin 官网
zipkin架构
zipkin
环境准备:
java 8
centos 7.3
说明:由于默认的zipkin是基于内存的存储类型,不具备持久化,server挂掉数据就丢失了。所以建议选用其他方案。目前支持的存储类型有:
mysql
Cassandra
Elasticsearch
我这里使用es作为存储。
ZipKin数据模型,及关键词
Trace:一组代表一次用户请求所包含的spans,其中根span只有一个。
Span: 一组代表一次HTTP/RPC请求所包含的annotations。
annotation:包括一个值,时间戳,主机名(留痕迹)。
cs:客户端发起请求,标志Span的开始
sr:服务端接收到请求,并开始处理内部事务,其中sr - cs则为网络延迟和时钟抖动
ss:服务端处理完请求,返回响应内容,其中ss - sr则为服务端处理请求耗时
cr:客户端接收到服务端响应内容,标志着Span的结束,其中cr - ss则为网络延迟和时钟抖动

采用springboot编写,springboot传入参数使用--key=value.
当前为什么使用--STORAGE_TYPE,--DES_HOSTS由配置文件里面决定.

部署起来效果图如下:
zipkin2

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: