1、SpringCloudSleuth简介:
一般的,一个分布式服务跟踪系统主要由三部分构成:
·数据收集
·数据存储
·数据展示
根据系统大小不同,每一部分的结构又有一定变化。譬如,对于大规模分布式系统,数据存储可分为实时数据和全量数据两部分,实时数据用于故障排查(TroubleShooting),全量数据用于系统优化;数据收集除了支持平台无关和开发语言无关系统的数据收集,还包括异步数据收集(需要跟踪队列中的消息,保证调用的连贯性),以及确保更小的侵入性;数据展示又涉及到数据挖掘和分析。虽然每一部分都可能变得很复杂,但基本原理都类似。
服务追踪的追踪单元是从客户发起请求(request)抵达被追踪系统的边界开始,到被追踪系统向客户返回响应(response)为止的过程,称为一个trace。每个trace中会调用若干个服务,为了记录调用了哪些服务,以及每次调用的消耗时间等信息,在每次调用服务时,埋入一个调用记录,称为一个span。这样,若干个有序的span就组成了一个trace。在系统向外界提供服务的过程中,会不断地有请求和响应发生,也就会不断生成trace,把这些带有span的trace记录下来,就可以描绘出一幅系统的服务拓扑图。附带上span中的响应时间,以及请求成功与否等信息,就可以在发生问题的时候,找到异常的服务;根据历史数据,还可以从系统整体层面分析出哪里性能差,定位性能优化的目标。
SpringCloudSleuth为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长。从而让我们可以很方便的理清各微服务间的调用关系。此外Sleuth可以帮助我们:
·耗时分析:通过Sleuth可以很方便的了解到每个采样请求的耗时,从而分析出哪些服务调用比较耗时;
·可视化错误:对于程序未捕捉的异常,可以通过集成Zipkin服务界面上看到;
·链路优化:对于调用比较频繁的服务,可以针对这些服务实施一些优化措施。
SpringCloudSleuth可以结合Zipkin,将信息发送到Zipkin,利用Zipkin的存储来存储信息,利用ZipkinUI来展示数据。
2、集成Sleuth
使用VisualStudioCode+maven作为开发环境
1、在文件中增加如下依赖:
2、编写
probability:1.0表示采样比例为100%,即全部采样。可以设置为0.0到1.0之间
base-url:指定zipkin服务器的地址
3、修改java文件:
在里面加入服务调用
4、启动服务:
5、启动浏览器访问zipkinserver:
6、启动浏览器访问服务
7、在Zipkinserver中跟踪服务
在ServiceName中输入服务名redis
再次查看详细信息: