201 微服务-服务追踪

服务追踪就是完整的追踪一次请求,经过了哪些服务,并且记录每个服务处理的详细信息(处理事件,处理结果等)。

服务追踪的作用

  • 快速定位问题。微服务架构下,问题的定位变得非常复杂,因为一个请求可能涉及多个服务。服务追踪可以让研发快速定位到问题出现的位置。
  • 系统优化。通过记录调用链路消耗的时间,可以分析哪些服务响应速度慢,并进行优化。通过分析调用链路,可以分析当前调用是否合理,是否有继续优化的空间。
  • 生成网络拓扑。有了服务追踪,我们就可以明确的知道服务之间的调用关系,可以更好的监控服务。

服务追踪系统原理

合理理念就是调用链:通过一个全局唯一的ID将分散在各个服务节点上的同一次请求串联起来。

关键的基本概念。

  • TraceID:一次请求生成一个唯一ID,并不断传给下游的服务。
  • SpanID:记录当前调用的层级以及顺序。例如美团MTrace采用数字表示顺序,“.”区分层级。例如某次请求经历了 0 -> 0.1 -> 0.1.1 以及 0 -> 0.2 的调用链路。

比较著名的服务追踪系统由Twitter的Zipkin、阿里的鹰眼、美团的MTrace等。

服务追踪系统的实现

与监控系统类似,服务追踪系统也需要 信息采集、信息上传、信息聚合、信息展示 四大功能。

上篇201 微服务-服务治理
下篇201 微服务-服务监控