首页 > 其他分享 >SpringCloud中集成Sleuth实现链路追踪

SpringCloud中集成Sleuth实现链路追踪

时间:2023-03-24 15:03:34浏览次数:49  
标签:Sleuth http zipkin SpringCloud Eureka 链路 eureka true


场景

SpringCloud分布式微服务项目搭建构造父子模块依赖与实现服务提供者与消费者示例:

SpringCloud分布式微服务项目搭建构造父子模块依赖与实现服务提供者与消费者示例_霸道流氓气质的博客-springcloud 父子依赖

SpringCloud分布式微服务项目Common通用依赖模块抽离:

SpringCloud分布式微服务项目Common通用依赖模块抽离_霸道流氓气质的博客-

在上面搭建项目结构基础上,首先是实现了单机模式下集成Eureka。

SpringCloud中集成Eureka实现服务注册(单机Eureka构建):

SpringCloud中集成Eureka实现服务注册(单机Eureka构建)_霸道流氓气质的博客-_springcloud 集成eureka

在上面的基础上怎样集成Sleuth实现链路追踪。

Zipkin

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

jar包下载:

GitHub - openzipkin/zipkin: Zipkin is a distributed tracing system

往下拉找到lastest  released server,点击下载

SpringCloud中集成Sleuth实现链路追踪_spring

下载之后,打开cmd运行该jar包即可。

SpringCloud中集成Sleuth实现链路追踪_Cloud_02

启动成功之后访问:

http://127.0.0.1:9411/zipkin/

出现如下界面则是启动成功

SpringCloud中集成Sleuth实现链路追踪_spring_03

注:

博客:霸道流氓气质的博客_-C#,架构之路,SpringBoot领域博主

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、服务提供者修改

修改服务提供者8801的pom文件,添加如下项目依赖

<!--包含了sleuth+zipkin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

然后修改application.yml,添加如下配置

spring:
  application:
    name: cloud-payment-service
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
    #采样率值介于 0 到 1 之间,1 则表示全部采集
    probability: 1

完整配置文件

server:
  port: 8001

spring:
  application:
    name: cloud-payment-service
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
    #采样率值介于 0 到 1 之间,1 则表示全部采集
    probability: 1
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包
    url: jdbc:mysql://localhost:3306/springclouddemo?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456

eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #单机版
      defaultZone: http://localhost:7001/eureka
      #defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka

  instance:
    instance-id: payment8001
    #访问路径可以显示IP地址
    prefer-ip-address: true
#    #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
#    lease-renewal-interval-in-seconds: 1
#    #Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务
#    lease-expiration-duration-in-seconds: 2

mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.badao.springclouddemo.entities    # 所有Entity别名类所在包

修改controller,添加一个接口供后续调用

@GetMapping("/payment/zipkin")
    public String paymentZipkin()
    {
        return "hi ,i'am paymentzipkin server fall back O(∩_∩)O哈哈~";
    }

2、服务消费者修改

同上,服务消费者的pom文件也是添加同样的pom依赖,并修改同样的配置文件,同样

在controller添加一个接口进行服务调用

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

3、启动Eureka Server7001、服务提供者8001、服务消费者88,并且调用88的新增接口

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

SpringCloud中集成Sleuth实现链路追踪_spring_04

可以根据服务名进行搜索,并可点击进行详细查看

SpringCloud中集成Sleuth实现链路追踪_spring_05

标签:Sleuth,http,zipkin,SpringCloud,Eureka,链路,eureka,true
From: https://blog.51cto.com/BADAOLIUMANGQZ/6147290

相关文章

  • SpringCloudStream消息驱动的使用以及解决消息重复消费
    场景SpringCloudConfig集成Bus消息总线实现动态刷新配置(全局广播和定点通知):SpringCloudConfig集成Bus消息总线实现动态刷新配置(全局广播和定点通知)_霸道流氓气质的博客-......
  • SpringCloud相关面试
    1springcloud的核心组件有哪些?Eureka:服务注册于发现。Feign:基于动态代理机制,根据注解和选择的机器,拼接请求url地址,发起请求。Ribbon:实现负载均衡,从一个服务......
  • 2017双11交易系统TMF2.0技术揭秘,实现全链路管理
    摘要: 本文是《2017双11交易系统TMF2.0技术揭秘》演讲整理,主要讲解了基于TMF2.0框架改造的交易平台,通过业务管理域与运行域分离、业务与业务的隔离架构,大幅度提高了业务在可......
  • springcloud Stream整合rabbitmq消息驱动生产者踩坑
    消息驱动之生产者8801(踩坑记录)1.首先说一下情况,我是跟着尚硅谷周阳老师的springcloud2020教程学习的,前面也踩了不少坑,但是这个坑,是我找的比较久的坑了,所以希望大家能直......
  • 基于802.11n物理层的OFDM通信链路simulink仿真,包括FEC编码、插入导频、OFDM成帧、STB
    1.算法描述随5G的推广和下一代无线通信系统的兴盛,怎样应对现有频谱资源的紧缺与改善信息传输的质量成了迫在眉睫的难题,对重要技术的开发利用提出了更高的要求。其中,以MIMO......
  • springboot&springcloud自动配置
    自动配置文件如下:org.springframework.cloud.bootstrap.BootstrapConfiguration=\com.demo.test.AlgConfigAutoConfigurationorg.springframework.boot.autoconfigure.E......
  • SpringCloud 超大文件上传解决方案:分片断点上传(一)
    ​ HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %><!DOCTYPE html PUBLIC "-//W3C//DTDXH......
  • 第三章 数据链路层
    第三章数据链路层链路不等于数据链路链路:从一个节点到另一个节点的物理线路(没有进过交换机节点)数据链路:链路以及控制数据在链路上传输的协议构成数据链路层......
  • springcloud学习——nacos
    1介绍nacos是阿里巴巴开发的,现在已属于springcloud框架,功能比eureka更加丰富2安装与启动下载:GitHub主页:https://github.com/alibaba/nacos解压安装包后,在bin文件夹中......
  • MATLA 5G工具箱---5G NR链路通信链路模型
    基于MATLABR2022b版软件学习!5GNR通信链路模型使用5G工具箱,可以对5GNR共享信道链路进行建模,包括从生成传输块到传输通道解码所有的步骤。下图为下行通信链路的主要元......