Spring Cloud Sleuth的简介
随着业务的发展,系统规模会变的越来越大,各个微服务间的调用关系也变得越来越错综复杂,通常情况下一个客户端发起的请求在后端系统中会经历多个不同微服务调用来协同产生最后的请求结果,在复杂的微服务架构系统中,几乎每个前端请求都会形成一条复杂的分布式服务调用链路,而在每一条链路中任何一个依赖服务出现错误时都有可能引发请求最后的失败。这时,对于每个请求,全链路调用的跟踪就变得尤其重要。通过实现对请求调用的跟踪可以帮助我们快速发现错误根源以及监控分析每条请求链路上的性能瓶颈等。
针对上面所述的分布式服务跟踪问题,Spring Cloud提供了Sleuth框架作为解决方案,Sleuth可以在整个分布式系统中跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化等),捕获这些跟踪的数据,并构建微服务的整个调用链的视图,为服务跟踪、解决问题提供便利。
Spring Cloud Sleuth框架具有以下4个特点:
1.提供链路追踪。通过Sleuth可以很清楚看出一个请求经过了哪些服务,方便理清服务间的调用关系。
2.性能分析。通过Sleuth可以很方便看出每个请求的耗时,分析出哪些服务调用比较耗时,当服务调用的耗时随着请求量的增大而增大时,也可以对服务的扩容提供一定的提醒作用。
3.数据分析。对于一些被频繁调用的服务,可以针对业务做一些优化措施。
4.可视化。对于程序未捕获的异常,可以在Zipkin界面上看到。