Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,而且兼容支持了 zipkin,你只须要在pom文件中引入相应的依赖便可。html
微服务架构上经过业务来划分服务的,经过REST调用,对外暴露的一个接口,可能须要不少个服务协同才能完成这个接口功能,若是链路上任何一个服务出现问题或者网络超时,都会造成致使接口调用失败。随着业务的不断扩张,服务之间互相调用会愈来愈复杂。java
本小节教程将讲述如何使用sleuth和zipkin来构建微服务的链路追踪。mysql
下载地址以下,并启动:git
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
复制代码
访问zipkin的ui 界面,地址为localhost:9411github
在三个工程provider\consumer\gateway的pom文件加上如下的依赖:web
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
复制代码
三个工程的配置文件application.yml加上如下的配置:spring
spring.zipkin.sender.type: web
#设置采样率默认为 0.1 注意以前的版本是percentage 新版本中更换为 probability
spring.sleuth.sampler.probability: 1
spring.zipkin.base-url: http://localhost:9411/
spring.zipkin.service.name: consumer
复制代码
zipkin server支持mq方式收集链路信息,同时支持多种数据存储方式,好比es\mysql等,更多收集数据和存储方式见:github.com/openzipkin/…sql
启动三个工程,在浏览器上访问:http://localhost:5000/consumer/hi-feignapi
访问zipkin server的api ,能够看到服务依赖,以下:浏览器
能够看到请求的具体耗时:
www.fangzhipeng.com/springcloud…