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. 很强,我终于找到绘制E-R图的正确姿势

    前言 不知道大家是不是和我一样,为了追求速度,开发时一般都是直接建表就干,哪管什么E-R图.直到xxx项目找上你,某某客户要E-R图,提供一下吧.这时候就很烦,从头绘制E-R图成本真的很高,今天我就遇 ...

  2. requests不带参数的get请求和带get参数请求

    requests库常用的方法 requests.Request(url) 构造一个请求,支持以下各种方式 requests.get() 发送get请求 requests.post() 发送post请求 ...

  3. MyBatis各个版本下载 以及 Apache Maven 安装

    推荐下面两篇文章:实测有效! MyBatis下载和环境搭建 Maven详细安装教程

  4. noopener, noreferrer 及 nofollow 的用法

    <a> 标签通常会配合着使用 noopener, noreferrer 及 nofollow 这些属性, 它们的作用及用法如下. noopener 当给链接加上 target=" ...

  5. odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)

    计算的字段和变更(Computed Fields And Onchanges) 模型之间的关系是任何Odoo模块的关键组成部分.它们对于任何业务案例的建模都是必要的.然而,我们可能需要给定模型中字段之 ...

  6. ACM-NEFU15届校赛-大二组

    A.小林找工作 #include<bits/stdc++.h> using namespace std; const int MAXN=1e5+10; int p[MAXN]; int m ...

  7. python入门教程之三编码问题

    1编码问题 Python文件中如果未指定编码,在执行过程中会出现报错: !/usr/bin/python print ("你好,世界") 以上程序执行输出结果为: 文件" ...

  8. SQL concat_ws, collect_set, 和explode合并使用

    1. 背景 有一个这样的数据集:字段和字段的值是两列 目的是将这个数据转换成规整的一个特征是一列的数据: 2. 做法 第一步:先造出列 select ucid ,CASE WHEN type ='性别 ...

  9. linux下live555编译和调试

    linux下live555编译和调试 live555 支持 h.264 初步告捷,可以播放,尽管不是很稳定,或者说暂时只能播放 1 帧(主要是我现在还不了解 帧的概念),同时还有 Mal SDP 的传 ...

  10. xlsx纯前端导出表格,完善边框等样式

    仅用xlsx是无法实现文字样式及表格边框的style的,因此配合使用xlsx-style 以下源码直接复制过去用 // 源码什么的都不需要改动 import * as XLSXStyle from ' ...