分布式服务跟踪系统
Posted doit8791
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式服务跟踪系统相关的知识,希望对你有一定的参考价值。
一个分布式服务跟踪系统主要由三部分构成:
- 数据收集
- 数据存储
- 数据展示
根据系统大小不同,每一部分的结构又有一定变化。譬如,对于大规模分布式系统,数据存储可分为实时数据和全量数据两部分,实时数据用于故障排查(Trouble Shooting),全量数据用于系统优化;数据收集除了支持平台无关和开发语言无关系统的数据收集,还包括异步数据收集(需要跟踪队列中的消息,保证调用的连贯性),以及确保更小的侵入性;数据展示又涉及到数据挖掘和分析。虽然每一部分都可能变得很复杂,但基本原理都类似。
服务追踪的追踪单元是从客户发起请求(request)抵达被追踪系统的边界开始,到被追踪系统向客户返回响应(response)为止的过程,称为一个 trace。每个 trace 中会调用若干个服务,为了记录调用了哪些服务,以及每次调用的消耗时间等信息,在每次调用服务时,埋入一个调用记录,称为一个 span。这样,若干个有序的 span 就组成了一个 trace。在系统向外界提供服务的过程中,会不断地有请求和响应发生,也就会不断生成 trace,把这些带有 span 的 trace 记录下来,就可以描绘出一幅系统的服务拓扑图。附带上 span 中的响应时间,以及请求成功与否等信息,就可以在发生问题的时候,找到异常的服务;根据历史数据,还可以从系统整体层面分析出哪里性能差,定位性能优化的目标。
ZipKin就是一个常用的开源分布式跟踪系统,它主要有下面四部分组成:
以上是关于分布式服务跟踪系统的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud构建微服务架构 分布式服务跟踪(抽样收集)Dalston版