风在路上 风在路上
首页
导航站
  • Java-Se

    • Java基础
  • Java-Se进阶-多线程

    • 多线程
  • Java-Se进阶-java8新特性

    • java8新特性
  • Java-ee

    • JavaWeb
  • Java虚拟机

    • JVM
  • golang基础

    • golang基础
  • golang框架

    • gin
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • Redis
    • ElasticSearch
    • MongoDB
  • ORM

    • MyBatis
    • MyBatis-Plus
  • Spring

    • Spring
  • SpringMVC

    • SpringMVC1
    • SpringMVC2
  • SpringCloud

    • SpringCloud
  • 中间件

    • RabbitMQ
    • Dubbo
  • 秒杀项目
  • Git
  • Linux
  • Docker
  • JWT
  • 面试
  • 刷题
开发问题😈
设计模式
关于💕
归档🕛
GitHub (opens new window)

风

摸鱼
首页
导航站
  • Java-Se

    • Java基础
  • Java-Se进阶-多线程

    • 多线程
  • Java-Se进阶-java8新特性

    • java8新特性
  • Java-ee

    • JavaWeb
  • Java虚拟机

    • JVM
  • golang基础

    • golang基础
  • golang框架

    • gin
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • Redis
    • ElasticSearch
    • MongoDB
  • ORM

    • MyBatis
    • MyBatis-Plus
  • Spring

    • Spring
  • SpringMVC

    • SpringMVC1
    • SpringMVC2
  • SpringCloud

    • SpringCloud
  • 中间件

    • RabbitMQ
    • Dubbo
  • 秒杀项目
  • Git
  • Linux
  • Docker
  • JWT
  • 面试
  • 刷题
开发问题😈
设计模式
关于💕
归档🕛
GitHub (opens new window)
  • mybatis

  • mybatis-plus

  • Spring

  • SpringMvc

  • RabbitMQ

  • Dubbo

  • SpringCloud

    • SpringCloud知识体系
    • Eureka
    • ZookeeperAndConsul
    • Ribbn
    • OpenFeign
    • Hystrix
    • Gateway
    • Config
    • Bus
    • Stream
    • Sleuth
      • 概述
        • 问题
        • 是什么
      • 安装
        • 下载运行zipkin
        • zipkin监控界面
        • 名词解释
      • 调用测试
        • 引入依赖
        • 两个项目都增加yaml配置
        • 8001controller新增方法
        • 80Controller新增
        • 测试
    • Nacos
    • Sentinel
    • Seata
  • 框架
  • SpringCloud
zdk
2022-11-15
目录

Sleuth

Table of Contents generated with DocToc (opens new window)

  • Sleuth
    • 概述
      • 问题
      • 是什么
    • 安装
      • 下载运行zipkin
        • zipkin监控界面
        • 名词解释
    • 调用测试
      • 引入依赖
      • 两个项目都增加yaml配置
      • 8001controller新增方法
      • 80Controller新增
      • 测试

# Sleuth

分布式请求链路跟踪

# 概述

# 问题

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

# 是什么

  • SpringCloud Sleuth提供了一套完整的服务跟踪的解决方案
  • 在分布式系统中提供追踪解决方案并且兼容支持的zipkin

image-20221115155625267

# 安装

SpringCloud从F版起已不需要自己构建zipkin Server了,只需要调用jar包即可

# 下载运行zipkin

jar包下载地址:https://cloud.zaiolos.top/s/dmsO

运行命令:

java -jar zipkin-server-2.23.16-exec.jar
1

出现以下结果表示成功

image-20221115160429362

访问http://127.0.0.1:9411/zipkin/即可

image-20221115160507855

# zipkin监控界面

一条链路完整图片:

image-20221115161022031

精简版:

image-20221115161036742

可以看到,类似链表的形式

# 名词解释

  • Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
  • span:表示调用链路来源,通俗的理解span就是一次请求信息

# 调用测试

这里为了简单,就用原来最普通的8001和order80微服务来进行调用测试

image-20221115161714879

# 引入依赖

首先为两个项目都引入以下依赖

<!-- 包含了sleuth+zipkin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
            <version>2.2.8.RELEASE</version>
        </dependency>
1
2
3
4
5
6

# 两个项目都增加yaml配置

即在spring下增加zipkin和sleuth的配置

spring:
  application:
    name: cloud-payment-service
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      # 采样率值介于0~1之间,1则表示全部采集
      probability: 1      
1
2
3
4
5
6
7
8
9

# 8001controller新增方法

@GetMapping(value = "/payment/zipkin")
public String paymentZipkin(){
    return "this is payment zipkin server fallback~~~~~";
}
1
2
3
4

# 80Controller新增

@GetMapping(value = "/consumer/payment/zipkin")
public String paymentZipkin(){
    return restTemplate.getForObject(PAYMENT_URL+"/payment/zipkin", String.class);
}
1
2
3
4

# 测试

调用多次http://localhost/consumer/payment/zipkin,

再进入zipkin控制台http://127.0.0.1:9411/zipkin/,即可发现出现了调用信息

image-20221115163403276

image-20221115163553418

在 GitHub 上编辑此页 (opens new window)
#Sleuth
最后更新: 2022/11/15, 16:11:00
Stream
Nacos

← Stream Nacos→

Theme by Vdoing | Copyright © 2022-2025 zdk | notes
湘ICP备2022001117号-1
川公网安备 51142102511562号
本网站由 提供CDN加速/云存储服务
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式