为什么要用SpringCloud Sleuth?
微服务的现状
随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。
多服务协同工作
在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果
复杂的调用链条容易出错
在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整个请求最后的失败
解决问题
微服务跟踪(sleuth)其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化),捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。
Sleuth 负责收集整理,Zipkin负责展现。
Sleuth 搭建链路监控步骤
1、下载zipkin下载地址:
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
SpringCloud从F版起已不需要自己构建Zipkin Server了,只需调用jar包。运行命令为 java -jar xxxx.jar
2、配置服务
依赖坐标:
<!--包含了sleuth+zipkin--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
配置文件:
spring: application: name: cloud-order-server zipkin: base-url: http://localhost:9411 sleuth: sample: #采样率介于0到1之间,1表示全部采集,性能较低 probability: 1
zipkin默认端口:9411
可以通过 localhost:9411 查看视图界面。