SpringCloud(18)之Sleuth +Zipkin链路追踪

一、Zipkin介绍

Zipkin是一个开放源代码分布式的跟踪系统,它可以帮助收集服务的时间数据,以解决微服务架构中的延迟问 题,包括数据的收集、存储、查找和展现。每个服务向zipkin报告计时数据,zipkin会根据调用关系通 过Zipkin UI生成依赖关系图,展示多少跟踪请求经过了哪些服务,该系统让开发者可通过一个web前端 轻松地收集和分析数据,可非常方便的监测系统中存在的瓶颈。

它可以帮助收集服务的时间数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找 和展现。

每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图,展示多少 跟踪请求经过了哪些服务,该系统让开发者可通过一个web前端轻松地收集和分析数据,可非常方便的监测系统中存在的瓶颈。

二、Spring Cloud Sleuth

为服务之间的调用提供链路追踪,通过使用Sleuth可以让我们快速定位某个服务的问题。分布式服务追 踪系统包括:数据收集、数据存储、数据展示。通过Sleuth产生的调用链监控信息,让我们可以得知微 服务之间的调用链路,但是监控信息只输出到控制台不太方便查看。

Sleuth和Zipkin结合,将信息发送到Zipkin,利用Zipkin的存储来存储信息,利用Zipkin UI来展示信 息。

SpringCloud Sleuth有4个特点:

|------------|--------------------------------------------------------------------------------------|
| 特点 | 说明 |
| 提供链 路追踪 | 通过sleuth可以很清楚的看出一个请求经过了哪些服务, 可以方便的理清服务局的调 用关系 |
| 性能分 析 | 通过sleuth可以很方便的看出每个采集请求的耗时, 分析出哪些服务调用比较耗时, 当服务调用的耗时 随着请求量的增大而增大时,也可以对服务的扩容提 供一定的提醒 作用 |
| 数据分 析优 化链路 | 对于频繁地调用一个服务,或者并行地调用等, 可以针对业务做一些优化措施 |
| 可视化 | 对于程序未捕获的异常,可以在zipkpin界面上看到 |

三、Zipkin 安装

关于zipkin在上面我们已经介绍了,我们接下来讲解zipkin的安装。

1)下载

下载地址:Central Repository: io/zipkin/zipkin-server

2)运行

运行 zipkin-server-2.12.9-exec.jar ,java -jar zipkin-server-2.12.9-exec.jar 回车即可运行,并访问http://localhost:9411/zipkin/

http://localhost:9411/zipkin/ 效果如下:

三、Sleuth链路追踪

1)引入依赖

引入ziplin,它自身已经依赖了sleuth,我们再hailtaxi-order依赖包中引入:

XML 复制代码
        <!--zipkin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>

依赖关系如下图:

2)配置服务地址

修改 hailtaxi-order 的配置文件 applicatin.yml添加如下配置:

XML 复制代码
server:
  port: 18082
spring:
  application:
    name: hailtaxi-order
  zipkin:
    #zipkin服务地址
    base-url: http://localhost:9411
  sleuth:
    sampler:
      probability: 1  #采样值,0~1之间,1表示全部信息都手机,值越大,效率越低

我们执行一次下单调用 http://localhost:18082/order ,再看zipkin控制台:

我们刚才调用的链路如下图:

分布式服务追踪系统包括:数据收集、数据存储、数据展示,通过Sleuth产生的调用链监控信息,让我们可以得知微服务之间的调用链路,但是监控信息只输出 到控制台不太方便查看,Sleuth和Zipkin结合,将信息发送到Zipkin,利用Zipkin的存储来存储信息,利用Zipkin UI来展示 信息。

相关推荐
天若有情6733 小时前
【java EE】IDEA 中创建或迁移 Spring 或 Java EE 项目的核心步骤和注意事项
后端·spring·java-ee·intellij-idea
钱多多_qdd6 小时前
基础篇:IoC(三):Bean实例化策略InstantiationStrategy
java·spring
安冬的码畜日常8 小时前
【JUnit实战3_27】第十六章:用 JUnit 测试 Spring 应用:通过实战案例深入理解 IoC 原理
spring·观察者模式·设计模式·单元测试·ioc·依赖注入·junit5
敲代码的嘎仔10 小时前
JavaWeb零基础学习Day6——JDBC
java·开发语言·sql·学习·spring·单元测试·maven
lijun_xiao200912 小时前
SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式-学习笔记-1
分布式·spring cloud·rabbitmq
程序猿小蒜13 小时前
基于springboot的校园社团信息管理系统开发与设计
java·前端·spring boot·后端·spring
兔兔爱学习兔兔爱学习13 小时前
Spring Al学习9:模型上下文协议(MCP)
java·学习·spring
m0_7482480213 小时前
Spring MVC中@RequestMapping注解的全面解析
java·spring·mvc
Kay_Liang15 小时前
Spring中@Controller与@RestController核心解析
java·开发语言·spring boot·后端·spring·mvc·注解
行思理15 小时前
Spring MVC 注释新手教程
java·spring·mvc