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来展示 信息。

相关推荐
memgLIFE1 天前
Springboot 分层结构
java·spring boot·spring
黄俊懿1 天前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——全局事务的提交
java·后端·spring·spring cloud·微服务·架构·架构师
也许是_1 天前
大模型应用技术之 Spring AI 2.0 变更说明
java·人工智能·spring
CodeAmaz1 天前
Spring循环依赖与三级缓存详解
spring·循环依赖·三级缓存
diudiu96281 天前
Maven配置阿里云镜像
java·spring·阿里云·servlet·eclipse·tomcat·maven
222you2 天前
SpringAOP的介绍和入门
java·开发语言·spring
CodeAmaz2 天前
Spring编程式事务详解
java·数据库·spring
谷哥的小弟2 天前
Spring Framework源码解析——RequestContext
java·后端·spring·框架·源码
墨痕诉清风2 天前
java漏洞集合工具(Struts2、Fastjson、Weblogic(xml)、Shiro、Log4j、Jboss、SpringCloud)
xml·java·struts·安全·web安全·spring cloud·log4j
程序员阿鹏2 天前
SpringBoot自动装配原理
java·开发语言·spring boot·后端·spring·tomcat·maven