SpringCloud Sleuth+Zipkin-链路追踪

官网:spring-cloud/spring-cloud-sleuth: Distributed tracing for spring cloud (github.com)

分布式链路追踪之Spring Cloud Sleuth+Zipkin最全教程! - bucaichenmou - 博客园 (cnblogs.com)

1.Sleuth+Zipkin是什么

  1. 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用,来协同产生最后的请求结果,每一个请求都会形成一条复杂的分布式服务调用链路
  2. 链路中的任何一环出现高延时或错误都会引起整个请求最后的失败,因此对整个服务的调用进行链路追踪和分析就非常的重要
  3. Sleuth 提供了一套完整的服务跟踪的解决方案并兼容 Zipkin。Sleuth 做链路追踪 , Zipkin 做数据搜集/存储/可视化。

2.Sleuth+Zipkin的工作原理

  1. Span 和 Trace 在一个系统中使用 Zipkin 的过程-图形化

    • 一条链路通过Trace Id唯一标识 , Span标识发起的请求信息,各span通过parent id关联起来
    • Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
    • Span:基本工作单元,表示调用链路来源,通俗的理解span就是一次请求信息
  2. spans 的 parent/child 关系图形化

    标识的红线,后一个span节点的parentId 指向/记录 了上一个Span,span就是一次请求信息,多个Span集合就构成一条调用链路,在span=C 这个节点存在分支

3.搭建链路监控实例

要求: 通过 Sleuth 和 Zipkin 可以对服务调用链路进行监控,并在 Zipkin 进行显示

3.1安装Zipkin

  1. 访问 https://repo1.maven.org/maven2/io/zipkin/java/zipkin-server/2.12.9/,点击下载第一个jar文件

  2. 把 zipkin-server-2.12.9-exec.jar 放到指定的目录

  3. 进入 cmd , 执行指令运行: java -jar zipkin-server-2.12.9-exec.jar

  4. 浏览器输入:http://localhost:9411/zipkin/

3.2服务提供方集成 Sleuth/Zipkin

  1. 修改 member-service-provider-10000 的 pom.xml , 增加引入 sleuth+zipkin

    <!--zipkin的starter依赖集成了sleuth+zipkin-->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>

  2. 修改 member-service-provider-10000 的 appliaction.xml , 指定 Zipkin

3.3服务消费方集成 Sleuth/Zipkin

略,步骤同3.2

  1. 修改 member-service-consumer-80 的 pom.xml , 增加引入 sleuth+zipkin
  2. 修改 member-service-consumer-80 的 appliaction.xml , 指定 Zipkin

3.4测试

按顺序启动 e-commerce-eureka-server-9001、member-service-provider-10000、member-service-consumer-80。在浏览器输入: http://localhost/member/consumer/get/1

3.5查看监控&分析结果

访问 http://localhost:9411/zipkin/

  1. 选择某个服务,看结果

    1. 查看一次调用链路的深度,以及该链路包含请求, 各个请求耗时,找到请求瓶颈,为优化提供依据


  2. 查看服务调用的依赖关系

day09-SpringCloud Sleuth+Zipkin-链路追踪的更多相关文章

  1. 微服务SpringCloud之zipkin链路追踪

    随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位 ...

  2. SpringCloud:Zipkin链路追踪,并将数据写入mysql

    1.zipkin server 1.1.新建Springboot项目,zinkin 1.2.添加依赖 <dependency> <groupId>io.zipkin.java& ...

  3. SpringCloud Sleuth + Zipkin 实现链路追踪

    一.Sleuth介绍   为什么要使用微服务跟踪? 它解决了什么问题? 1.微服务的现状?   随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂 ...

  4. 微服务 Zipkin 链路追踪原理(图文详解)

    一个看起来很简单的应用,可能需要数十或数百个服务来支撑,一个请求就要多次服务调用. 当请求变慢.或者不能使用时,我们是不知道是哪个后台服务引起的. 这时,我们使用 Zipkin 就能解决这个问题. 由 ...

  5. springCloud学习-服务链路追踪(Spring Cloud Sleuth)

    1.简介 Spring Cloud Sleuth 是 Spring Cloud 的一个组件,它的主要功能是在分布式系统中提供服务链路追踪的解决方案. 常见的链路追踪组件有 Google 的 Dappe ...

  6. Spring Cloud Sleuth服务链路追踪(zipkin)(转)

    这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件. 一.简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案, ...

  7. Spring Cloud(十三):Spring Cloud Sleuth服务链路追踪(zipkin)(转)

    这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件. 一.简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案, ...

  8. springcloud -- sleuth+zipkin整合rabbitMQ详解

    为什么使用RabbitMQ? 我们已经知道,zipkin的原理是服务之间的调用关系会通过HTTP方式上报到zipkin-server端,然后我们再通过zipkin-ui去调用查看追踪服务之间的调用链路 ...

  9. Spring Cloud Sleuth + Zipkin 链路监控

    原文:https://blog.csdn.net/hubo_88/article/details/80878632 在微服务系统中,随着业务的发展,系统会变得越来越大,那么各个服务之间的调用关系也就变 ...

  10. zipkin链路追踪

    zipkin架构说明 zipkin api 我想自己搞一些满足zipkin格式的日志,入库es,然后让zipkin仅做展示 1.需要了解zipkin组件 2,学习zipkin设计原理,何时何地产生日志 ...

随机推荐

  1. vue双向监听proxy

    console.log('判断页面是否有滚动条', this.hasScrollbar) const that = this that.count = 0 // 计数 that.scrollProxy ...

  2. nginx中的proxy_pass配置

    Nginx 是最常用的反向代理工具之一,一个指令 proxy_pass搞定反向代理,对于接口代理.负载均衡很是实用,但 proxy_pass指令后面的参数很有讲究,通常一个/都可能引发一个血案. 通常 ...

  3. python入门教程之二十三Python3 MySQL 数据库连接 - PyMySQL 驱动

    MySQL 是最流行的关系型数据库管理系统,如果你不熟悉 MySQL,可以阅读我们的 MySQL 教程. 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql ...

  4. Spring注解系列——@PropertySource

    在Spring框架中@PropertySource注解是非常常用的一个注解,其主要作用是将外部化配置解析成key-value键值对"存入"Spring容器的Environment环 ...

  5. kali linux 基本渗透测试流程

    渗透测试流程 1. 信息收集阶段 网络拓扑结构分析 使用nmap扫描目标网络,获取目标主机IP地址和开放端口信息 使用whois查询目标域名的注册信息和DNS服务器信息 使用nslookup查询目标域 ...

  6. Windows 本地安装mysql8.0

    前言 看了网上许多关于Windows 本地安装mysql的很多教程,基本上大同小异.但是安装软件有时就可能因为一个细节安装失败.我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的.现我将 ...

  7. RDIFramework.NET代码生成器全新V5.0版本发布

    RDIFramework.NET代码生成器介绍 RDIFramework.NET代码生成器,代码.文档一键生成. RDIFramework.NET代码生成器集代码生成.各数据库对象文档生成.数据库常用 ...

  8. [OpenCV-Python] 22 直方图

    文章目录 OpenCV-Python:IV OpenCV中的图像处理 22 直方图 22.1 直方图的计算,绘制与分析 22.1.1 统计直方图 22.1.2 绘制直方图 22.1.3 使用掩模 22 ...

  9. Spring源码:bean的生命周期(一)

    前言 本节将正式介绍Spring源码细节,将讲解Bean生命周期.请注意,虽然我们不希望过于繁琐地理解Spring源码,但也不要认为Spring源码很简单.在本节中,我们将主要讲解Spring 5.3 ...

  10. Linux 给用户赋予操作权限

    赋予local目录读写权限给keesail,别的用户对这个目录没有任何权限. chown -R keesail:keesail ./local chmod 777 文件夹名称,可以把文件夹设置成所有用 ...