Spring Cloud Sleuth + Zipkin 分布式链路追踪,链路调用更清晰

转载声明 : 该文章出处为 扛麻袋的少年


写在开头

  接上一篇文章:Spring Cloud Stream 消息驱动。掌握了 Spring Cloud Stream,使 MQ 之间通信更方便。本文我们再来学习另一个全新的组件:Spring Cloud Sleuth 分布式链路追踪

1.Spring Cloud Sleuth 的由来

飞机票直达:Spring Cloud Sleuth 官网

  在微服务框架中,一个由客户端发起的请求,在后端系统中会经过多个不同的微服务节点调用,协同操作产生最后的请求结果。每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现 高延时 或者 错误,都会引起整个请求最后的失败。

  Spring Cloud Sleuth 提供了分布式系统中一套完整的服务跟踪的解决方案,并且兼容支持了zipkin,完美的解决了多个微服务之间链路调用的问题。

一句话总结: 就是用来处理服务之间调用关系的。

2.调用结构图

在这里插入图片描述

3.环境准备

  Zipkin 是 Twitter 的一个开源项目,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接口。

  我们需要先准备一个 Zipkin 环境。Spring Cloud 从F版起已不需要自己构建 Zipkin server了,只需要调用jar包即可。当前使用版本为 H版。我们只需要下载 Zipkin jar包,使用 java -jar xxx的方式启动即可。

  点击链接:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server ,下载 zipkin-server-2.12.9-exec.jar 。启动就OK了,如图所示。
在这里插入图片描述
  通过 http://loclahost:9411 就能进入到 Zipkin 为我们提供的可视化界面,一派清新的样子,尤其是中文界面,真的爱了爱了。
在这里插入图片描述

4.Sleuth测试环境搭建

  本次测试,采用之前已有环境。在 客户端(80) 调用 服务端(8001) 提供的服务,服务调用使用 openFeign 的方式。此处就不过多介绍代码,代码部分请到文末链接下载。

服务端/客户端 进行相同配置

Ⅰ.都需要引入 zipkin + sleuth pom 依赖

<!--引入sleuth+zipkin依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

 
  
  

Ⅱ.都需要在 applicaiton.yml 添加 zipkin、sleuth 相同配置

spring:
  # 应用名
  application:
    name: cloud-payment-service
  zipkin:
    base-url: http://localhost:9411 #监控数据要打到9411zipkin上
  sleuth:
    sampler:
    probability: 1  #采样率值介于0到1,1则表示全部采集

 
  
  

Ⅲ. 配置告一段落,具体业务下载代码查看吧

  就是一个简单的微服务调用过程,客户端 调用 服务端 提供的服务。

Ⅳ.微服务服务调用测试

  通过http://localhost/consumer/payment/get/31进行服务调用,调用成功后,我们打开 http://localhost:9411 Zipkin 控制台就可以看到具体服务调用情况。

  点击相对应请求,还可以看到 模块间调用情况调用耗时 等更详细的信息。点击导航栏中的 依赖 项,还可以查看模块(调用、被调用)的依赖关系等,链路调用关系一目了然。真香!!!
在这里插入图片描述
本文代码下载地址:Spring Cloud Sleuth 分布式链路追踪,调用链路更清晰 (提取码:zw97)

  Spring Cloud Sleuth 相对简单,篇幅也不长,没啥可说的,就是一个链路追踪工具,更深层次的内容,请 跳转官网了解。接下来要开启新篇章了。

下一篇:Spring Cloud Alibaba 加入 Spring Cloud 体系

猜你喜欢

转载自blog.csdn.net/m0_37989980/article/details/108572422