Spring Cloud Sleuth链路监控应用(十四)
https://docs.spring.io/spring-cloud-sleuth/docs/2.2.5.RELEASE/reference/html/
一、Sleuth介绍
为什么要使用微服务跟踪?它解决了什么问题?
1.微服务的现状?
微服务的现状
随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。
多服务协同工作
在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果
复杂的调用链条容易出错
在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整个请求最后的失败
例如:
在微服务系统中,一个来自用户的请求,请求先达到前端A(如前端界面)然后通过远程调用,到达系统中间件B,C(负载均衡,网关等),最后达到后端服务D,E,后端经过一系列的业务逻辑计算最后将数据返回给用户,对于这样一个请求,经历了这么多个服务,怎么样将它的请求过程的数据记录下来呢?这就需要用到服务链路追踪
2.微服务跟踪解决了什么问题?
微服务跟踪(sleuth)其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化),捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。
SpringCloudSleuth有4个特点
二、Sleuth案例
首先在所有要在链路跟踪代码里面引入依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
然后在所有要在链路跟踪配置中配置
#链路跟踪设置
logging:
level:
root: debug
spring: zipkin: base-url: http://192.168.0.23:9411/
然后docker安装zipkin
1、拉镜像
docker pull openzipkin/zipkin
2、运行镜像
docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin
在浏览器输入地址:http://192.168.0.23:9411/zipkin/
感觉这是最水军的一篇幅了,我还是不太喜欢在随笔中发表东西,感觉这名字起的就和写的东西好随意样,后面我会写一套Spring Cloud Alibaba的体系资源在文章中发表,有兴趣的朋友可以去看下。