本文是Spring Cloud专栏的第九篇文章,了解前八篇文章内容有助于更好的理解本文:
一、Sleuth前言随着业务的发展,系统规模也会变得越来越大,各微服务间的调用关系也变得越来越错综复杂。通常一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一条复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟过高或错误的时候都有可能引起请求最后的失败。这时候, 对于每个请求,全链路调用的跟踪就变得越来越重要,通过实现对请求调用的跟踪可以帮助我们快速发现错误根源以及监控分析每条请求链路上的性能瓶颈等。
上面所述的分布式服务跟踪问题, Spring Cloud Sleuth提供了一套完整的解决方案,下面将介绍Spring Cloud Sleuth的应用
二、Sleuth快速入门1、为了保持其他模块的整洁性,重新搭建一个消费者(springcloud-consumer-sleuth),提供者(springcloud-consumer-sleuth),消费者和提供者都是和前面所用的都一样没有什么区别,注册中心还是使用前面案例的注册中心(springcloud-eureka-server/8700),详细查看案例源码。
2、完成以上工作之后,我们为服务提供者和服务消费者添加跟踪功能,通过Spring Cloud Sleuth的封装,我们为应用增加服务跟踪能力的操作非常方便,只需要在服务提供者和服务消费者增加spring-cloud-starter-sleuth依赖即可
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency>