SpringCloud 中 Config、Bus、Stream、Sleuth

news2024/11/27 14:30:05

文章目录

  • 🚏 第十三章 分布式配置中心
    • 🚬 一、Config 概述
    • 🚬 二、Config 快速入门
      • 🚭 config-server:
        • 🛹 1、使用gitee创建远程仓库,上传配置文件
        • 🛹 2、导入 config-server 依赖
        • 🛹 3、搭建 config-server 模块
        • 🛹 4、编写配置,设置 gitee 远程仓库地址
        • 🛹 5、测试访问远程配置文件
      • 🚭 config-client: provider
        • 🛹 1、导入 starter-config 依赖
        • 🛹 2、配置config server 地址,读取配置文件名称等信息
        • 🛹 3、获取配置值
        • 🛹 4、启动测试
      • 🚭 Config 客户端刷新
        • 🛹 1、在 config 客户端引入 actuator 依赖
        • 🛹 2、获取配置信息类上,添加 @RefreshScope 注解
        • 🛹 3、添加配置
        • 🛹 4、使用curl工具发送post请求
    • 🚬 三、Config 集成Eureka
      • 🚭 config-client配置:
      • 🚭 config-server配置:
  • 🚏 第十四章 SpringCloud Bus消息总线
    • 🚬 一、Bus 概述
    • 🚬 二、RabbitMQ(message queue 消息对列)
    • 🚬 三、Bus 快速入门-运维
      • 🚭 1、分别在 config-server 和 config-client中引入 bus依赖:bus-amqp
      • 🚭 2、分别在 config-server 和 config-client中配置 RabbitMQ
        • 🛹 server 的配置文件:
        • 🛹 client的配置文件 bootstrap.yml
      • 🚭 3、在config-server中设置暴露监控断点:bus-refresh
      • 🚭 4、启动测试
        • 🛹 1、git配置改变
        • 🛹 2、往配置中心发请求
        • 🛹 3、微服务自动重启
        • 🛹 4、访问微服务,发现配置已经改变
  • 🚏 第十五章 SpringCloud Stream消息驱动
    • 🚬 一、Stream 概述
      • 🚭 Stream 组件
    • 🚬 二、Stream 消息生产者 stream-producer
      • 🚭 消息发送类
      • 🚭 调用的controller
    • 🚬 三、Stream 消息消费者 stream-consumer
      • 🚭 消息接收类
  • 🚏 第十六章 SpringCloud Sleuth分布式请求链路追踪
    • 🚬 一、概述
    • 🚬 二、快速入门
      • 🚭 1、安装启动zipkin。 java –jar zipkin.jar
      • 🚭 2、访问zipkin web界面。 [http://localhost:9411/](http://localhost:9411/)
      • 🚭 3、在服务提供方和消费方分别引入 sleuth 和 zipkin 依赖
      • 🚭 4、分别配置服务提供方和消费方。
      • 🚭 5、启动,测试

😹 作者: gh-xiaohe
😻 gh-xiaohe的博客
😽 觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!!

    超大型公司才会用到处理大规模微服务的技术。

🚏 第十三章 分布式配置中心

🚬 一、Config 概述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k8HdY1fb-1675939059100)(SpringCloud.assets/image-20220418081959807.439382b4.png)]

    Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护。

好处:

1、集中管理配置文件

2、不同环境不同配置,动态化的配置更新 dev test

3、配置信息改变时,不需要重启即可更新配置信息到服务

🚬 二、Config 快速入门

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DisRoUt6-1675939059101)(SpringCloud.assets/image-20220418082533367.271fa629.png)]

🚭 config-server:

🛹 1、使用gitee创建远程仓库,上传配置文件

    创建gitee 远程仓库,新建config-dev.yml文件,内容如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z8rIVXH6-1675939059101)(SpringCloud.assets/image-20230121122342868.png)]

server:
  port: 8000

  eureka:
    instance:
      hostname: localhost # 主机名
      prefer-ip-address: true # 将当前实例的ip注册到eureka server 中。默认是false 注册主机名
      ip-address: 127.0.0.1 # 设置当前实例的ip
      instance-id: ${eureka.instance.ip-address}:${spring.application.name}:${server.port} # 设置web控制台显示的 实例id
      lease-renewal-interval-in-seconds: 3 # 每隔3 秒发一次心跳包
      lease-expiration-duration-in-seconds: 9 # 如果9秒没有发心跳包,服务器呀,你把我干掉吧~
    client:
      service-url:
        defaultZone: http://eureka-server1:8761/eureka,http://eureka-server2:8762/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
spring:
  application:
    name: eureka-provider # 设置当前应用的名称。将来会在eureka中Application显示。将来需要使用该名称来获取路径

gh: xiaohe

🛹 2、导入 config-server 依赖

 		<!-- config-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

🛹 3、搭建 config-server 模块

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer // 启用config server功能
public class ConfigServerApp {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApp.class,args);
    }
}

🛹 4、编写配置,设置 gitee 远程仓库地址

server:
  port: 9527

spring:
  application:
    name: config-server
  # spring cloud config
  cloud:
    config:
      server:
        # git 的 远程仓库地址
        git:
          uri: https://gitee.com/ydlclass_cch/ydlclass-configs.git
      label: master # 分支配置

🛹 5、测试访问远程配置文件

http://localhost:9527/master/config-dev.yml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uq4uQxBc-1675939059102)(SpringCloud.assets/image-20220418083733698.508dfd18.png)]

🚭 config-client: provider

案例 : 01eureka-provider-8000 改造

🛹 1、导入 starter-config 依赖

		<!--config client -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

🛹 2、配置config server 地址,读取配置文件名称等信息

bootstrap.yml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d7j1k2sv-1675939059102)(SpringCloud.assets/image-20230121125859568.png)]

# 配置config-server地址
# 配置获得配置文件的名称等信息
spring:
  cloud:
    config:
      # 配置config-server地址
      uri: http://localhost:9527
      # 配置获得配置文件的名称等信息
      name: provider # 文件名
      profile: dev # profile指定,  config-dev.yml
      label: master # 分支

🛹 3、获取配置值

GoodsController

    @Value("${gh}")
    private String xiaoHe;
    
 	goods.setTitle(goods.getTitle()+"|端口号:"+ port + " xiaoHe" + xiaoHe );

🛹 4、启动测试

http://localhost:8000/goods/findById/9

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7uzvY3a4-1675939059102)(SpringCloud.assets/image-20220418084608302.978afefa.png)]

🚭 Config 客户端刷新

    gitee的配置文件发生改变 微服务也应该发生变化 , 通过查看 微服务 中的值 没有发生改变,配置中心的值已经发生改变

解决办法:通知微服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5FmeRLgN-1675939059103)(SpringCloud.assets/image-20220418085057098.ae365b9f.png)]

🛹 1、在 config 客户端引入 actuator 依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

🛹 2、获取配置信息类上,添加 @RefreshScope 注解

获取配置信息类上,添加 @RefreshScope 注解

@RefreshScope // 开启刷新功能

🛹 3、添加配置

bootstrap.yml

management:
  endpoints:
    web:
      exposure:
        include: '*'

🛹 4、使用curl工具发送post请求

curl -X POST http://localhost:8000/actuator/refresh 告诉你要进行刷新,或者使用ApiPost 等软件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-or3fvUdX-1675939059103)(SpringCloud.assets/image-20220418085907801.edb89cde.png)]

测试:值已经改变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GByAquUs-1675939059103)(SpringCloud.assets/image-20220418085930400.9adcb0c7.png)]

🚬 三、Config 集成Eureka

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3umw00d3-1675939059104)(SpringCloud.assets/image-20220418090254336.8b4469ba.png)]

🚭 config-client配置:

        <!-- eureka-client -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

主启动

@EnableEurekaClient

bootstrap.yml

# 配置config-server地址
# 配置获得配置文件的名称等信息
spring:
  cloud:
    config:
      # 配置config-server地址
      # uri: http://localhost:9527
      # 配置获得配置文件的名称等信息
      name: config # 文件名
      profile: dev # profile指定,  config-dev.yml
      label: master # 分支
      discovery:
        enabled: true
        service-id: CONFIG-SERVER   #  不写死 找具体的配置中心
# 打开端点
management:
  endpoints:
    web:
      exposure:
        include: '*'

🚭 config-server配置:

    <!-- eureka-client -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

主启动

@EnableEurekaClient

application.yml

eureka:
   client:
    service-url:
      defaultZone: http://localhost:8761/eureka

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JbpVtewJ-1675939059104)(SpringCloud.assets/image-20220418093808497.b6035ff7.png)]

🚏 第十四章 SpringCloud Bus消息总线

远程的配置文件更新了,运维只需要发一个请求,所有用到这个配置文件的几百个应用更新了。

🚬 一、Bus 概述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikyokS46-1675939059105)(SpringCloud.assets/image-20230125182110374.png)]

    Spring Cloud Bus 是用轻量的消息中间件将分布式的节点连接起来,可以用于广播配置文件的更改或者服务的监控管理。关键的思想就是,消息总线可以为微服务做监控,也可以实现应用程序之间相通信。

Spring Cloud Bus 可选的消息中间件包括 RabbitMQKafka

🚬 二、RabbitMQ(message queue 消息对列)

window 安装教程 :https://www.cnblogs.com/jfl-xx/p/10250184.html

文件分享 :https://share.weiyun.com/1JUdp5qf

作用:消息的生产者 已发送消息 , 发送到 MQ 中 让消息的消费者,来监听到消息

三大功能:异步、解耦、削峰填谷

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K2W7Rad7-1675939059105)(SpringCloud.assets/image-20200613074044506.2b1f2272.png)]

在这里插入图片描述

结构

  • 1、生产者: 和交换机建立一个 常链接 后通过 常链接中的 channel(频道、管道),把消息发动到 Exchange(交换机)
  • 2、RabbitMQ 通过绑定关系,把消息通过交换机 分发到一个或者 多个对列中
  • 3、消费者:监听一个对列,消费者 和一个对列 建立一个常链接, 对列中有了消息,就会通过常链接 中的 channel 推送到我们的消费者中

    RabbitMQ 提供了 6 种工作模式: 简单模式、工作对列 work queues、Publish/Subscribe 发布与订阅模式、Routing 路由模式、Topics 主题模式、RPC 远程调用模式(远程调用,不太算 MQ;是一个思想,暂不作介绍)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2yYRIYGE-1675939059105)(SpringCloud.assets/image-20200613074109383.dc1a9615.png)]

🚬 三、Bus 快速入门-运维

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uif8cNf3-1675939059106)(SpringCloud.assets/image-20200613074052830.5aedea61.png)]

🚭 1、分别在 config-server 和 config-client中引入 bus依赖:bus-amqp

        <!-- bus -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
        <!-- 端点打开 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

🚭 2、分别在 config-server 和 config-client中配置 RabbitMQ

🛹 server 的配置文件:

server:
  port: 9527

spring:
  application:
    name: config-server
  # spring cloud config
  cloud:
    config:
      server:
        # git 的 远程仓库地址
        git:
          uri: https://gitee.com/ydlclass_cch/ydlclass-configs.git
      label: master # 分支配置
  #配置rabbitmq信息
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    virtual-host: /

# 将自己注册到eureka中
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka

# 暴露bus的刷新端点
management:
  endpoints:
    web:
      exposure:
        include: 'bus-refresh'

🛹 client的配置文件 bootstrap.yml

# 配置config-server地址
# 配置获得配置文件的名称等信息
spring:
  cloud:
    config:
      # 配置config-server地址
      # uri: http://localhost:9527
      # 配置获得配置文件的名称等信息
      name: config # 文件名
      profile: dev # profile指定,  config-dev.yml
      label: master # 分支
      # 从注册中心去寻找config-server地址
      discovery:
        enabled: true
        service-id: CONFIG-SERVER
  #配置rabbitmq信息
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    virtual-host: /

management:
  endpoints:
    web:
      exposure:
        include: '*'

🚭 3、在config-server中设置暴露监控断点:bus-refresh

# 暴露bus的刷新端点
management:
  endpoints:
    web:
      exposure:
        include: 'bus-refresh'

bus自动在mq中建立交换机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bv28KtNq-1675939059106)(SpringCloud.assets/image-20230125185400454.png)]

只要微服务起起来,自动在mq中,建立队列,和交换机绑定

在这里插入图片描述

🚭 4、启动测试

🛹 1、git配置改变

在这里插入图片描述

🛹 2、往配置中心发请求

curl -X POST http://localhost:9527/actuator/bus-refresh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTBevuO2-1675939059107)(SpringCloud.assets/image-20230125195237019.png)]

🛹 3、微服务自动重启

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k811WYpZ-1675939059107)(SpringCloud.assets/image-20220418104702500.bbdf21ca.png)]

🛹 4、访问微服务,发现配置已经改变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FH2P3Yf1-1675939059107)(SpringCloud.assets/image-20220418104819862.b829a33e.png)]

🚏 第十五章 SpringCloud Stream消息驱动

🚬 一、Stream 概述

    问题:更换消息对列,所属所涉及到的代码都会发生改变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c2TQxv6A-1675939059107)(SpringCloud.assets/image-20230126222531322.png)]

    解决问题:Stream

  • 1、Spring Cloud Stream 是一个构建消息驱动微服务应用的框架。

  • 2、Stream 解决了开发人员无感知的使用消息中间件的问题,因为Stream对消息中间件的进一步封装,可以做到代码层面对中间件的无感知,甚至于动态的切换中间件,使得微服务开发的高度解耦,服务可以关注更多自己的业务流程。

  • 3、Spring Cloud Stream目前支持两种消息中间件RabbitMQ和Kafka

  • 就像jdbc一样

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jyFCvpm7-1675939059108)(SpringCloud.assets/image-20220418111643163.1006efdf.png)]

🚭 Stream 组件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kn9le2Cn-1675939059108)(SpringCloud.assets/image-20230125222933773.png)]

  • Spring Cloud Stream 构建的应用程序与消息中间件之间是通过绑定器Binder 相关联的 。绑定器对于应用程序而言起到了隔离作用, 它使得不同消息中间件的实现细节对应用程序来说是透明的。
  • binding 是我们通过配置把应用和spring cloud stream 的 binder 绑定在一起
  • output:发送消息 Channel,内置 Source接口
  • input:接收消息 Channel,内置 Sink接口

🚬 二、Stream 消息生产者 stream-producer

    <dependencies>
        <!--spring boot web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- stream -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
        </dependency>
    </dependencies>
@SpringBootApplication
public class StreamProducerApp8000 {
    public static void main(String[] args) {
        SpringApplication.run(StreamProducerApp8000.class,args);
    }
}
server:
  port: 8000

spring:
  cloud:
    stream:
      # 定义绑定器,绑定到哪个消息中间件上
      binders:
        ydlclass_binder: # 自定义的绑定器名称
          type: rabbit # 绑定器类型
          environment: # 指定mq的环境
            spring:
              rabbitmq:
                host: localhost
                port: 5672
                username: guest
                password: guest
                virtual-host: /
      bindings:
        output: # channel名称
          binder: ydlclass_binder #指定使用哪一个binder
          destination: ydlclass_exchange # 消息目的地(交换机)

🚭 消息发送类

MessageProducer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SgxeCz0d-1675939059108)(SpringCloud.assets/image-20230126154947920.png)]

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets;

@Component
@EnableBinding(Source.class)//这个类是stream的发送者
public class MessageProducer {

    @Autowired
    MessageChannel output;

    public void send(String msg){
        
        output.send(MessageBuilder.withPayload(msg).build());
        System.out.println("MessageProducer 确实发了消息了!");
    }
}

🚭 调用的controller

ProducerController

import com.ydlclass.stream.producer.MessageProducer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("test")
public class ProducerController {
    @Autowired
    MessageProducer messageProducer;
    
    //业务逻辑
    @GetMapping("/send")
    public String send(){
        //发消息
        String msg="使用stream来发消息了!";

        messageProducer.send(msg);

        return "success!";
    }
}

在这里插入图片描述

🚬 三、Stream 消息消费者 stream-consumer

    <dependencies>
        <!--spring boot web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- stream -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
        </dependency>
    </dependencies>
@SpringBootApplication
public class StreamConsumerApp9000 {
    public static void main(String[] args) {
        SpringApplication.run(StreamConsumerApp9000.class,args);
    }
}
server:
  port: 9000

spring:
  cloud:
    stream:
      # 定义绑定器,绑定到哪个消息中间件上
      binders:
        ydlclass_binder: # 自定义的绑定器名称
          type: rabbit # 绑定器类型
          environment: # 指定mq的环境
            spring:
              rabbitmq:
                host: localhost
                port: 5672
                username: guest
                password: guest
                virtual-host: /
      bindings:
        input: # channel名称
          binder: ydlclass_binder #指定使用哪一个binder
          destination: ydlclass_exchange # 消息目的地

🚭 消息接收类

MessageListener

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sHhyMlpX-1675939059109)(SpringCloud.assets/image-20230126155008265.png)]

import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.cloud.stream.messaging.Sink;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;

/**
 * 消息接收类
 */
@EnableBinding(Sink.class) // 这个类是stream 的消费者监听类
@Component
public class MessageListener {

    @StreamListener(Sink.INPUT)   // 接到到消息,立马执行下面代码
    public void receive(Message message){

        System.out.println(message);
        System.out.println(message.getPayload());
    }
}

在这里插入图片描述

🚏 第十六章 SpringCloud Sleuth分布式请求链路追踪

🚬 一、概述

问题?

想看一下,一个请求过来,设计到多少个微服务,这就是所谓的链路追踪

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YgyxSIAV-1675939059110)(SpringCloud.assets/image-20230126214844650.png)]

    Spring Cloud Sleuth 其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程,捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。

  • 1、耗时分析
  • 2、可视化错误
  • 3、链路优化

    Zipkin 是 Twitter 的一个开源项目,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。

Zipkin 和 Sleuth共同完成:Sleuth 手机数据 传到 Zipkin 上

🚬 二、快速入门

🚭 1、安装启动zipkin。 java –jar zipkin.jar

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AFR3cZx5-1675939059110)(SpringCloud.assets/image-20220418185033323.76dc027c.png)]

🚭 2、访问zipkin web界面。 http://localhost:9411/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hBhX3c6n-1675939059110)(SpringCloud.assets/image-20200613080015686.e297485f.png)]

🚭 3、在服务提供方和消费方分别引入 sleuth 和 zipkin 依赖

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

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

🚭 4、分别配置服务提供方和消费方。

provider

spring:
  application:
    name: feign-provider
  # 收集的数据传到 zipkin上  
  zipkin:
    base-url: http://localhost:9411/  # 设置zipkin的服务端路径
  # 收集这些信息
  sleuth:
    sampler:
      probability: 1 # 采集率 默认 0.1 百分之十。

consumer

spring:
  application:
    name: feign-consumer # 设置当前应用的名称。将来会在eureka中Application显示。将来需要使用该名称来获取路径
  # 收集的数据传到 zipkin上  
  zipkin:
    base-url: http://localhost:9411/  # 设置zipkin的服务端路径
  # 收集这些信息
  sleuth:
    sampler:
      probability: 1 # 采集率 默认 0.1 百分之十。

🚭 5、启动,测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g6qjiPZe-1675939059110)(SpringCloud.assets/image-20230126222633356.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【概念辨析】整型提升的深入理解(手画图解)

整型提升是一个小的知识点&#xff0c;但是请继续学习&#xff0c;保持空杯心态&#xff01; 目录 文章目录 前言 一、整型提升是什么&#xff1f; 二、发生整型提升的情况 1.字节数比int少的内置类型进行的整型提升 2.整型提升的规则 图解&#xff1a; 总结 前言 整型提升也是…

ubuntu18.04下交叉编译 nginx源码(支持推送H265的rtmp和http-flv)

ubuntu18.04下交叉编译 nginx源码&#xff08;支持推送H265的rtmp和http-flv&#xff09;适合在aarch64-linux-gnu平台下的交叉编译一、源码下载准备二、执行configure三、解决执行configure时遇到的出错问题1、checking for C compiler ... found but is not working2、error:…

Vue-第一天 前端工程化与 webpack

前端工程化与 webpack一、前端工程化1. 小白眼中的前端开发 vs 实际的前端开发2. 什么是前端工程化3. 前端工程化的好处4. 前端工程化的解决方案二、webpack 的基本使用1. 什么是 webpack2. 创建列表隔行变色项目3. 在项目中安装 webpack4. 在项目中配置 webpack4.1 mode 的可选…

Homekit智能家居DIY设备-智能通断开关

智能通断器&#xff0c;也叫开关模块&#xff0c;可以非常方便地接入家中原有开关、插座、灯具、电器的线路中&#xff0c;通过手机App或者语音即可控制电路通断&#xff0c;轻松实现原有家居设备的智能化改造。 随着智能家居概念的普及&#xff0c;越来越多的人想将自己的家改…

【微服务】Elasticsearch集群介绍搭建(六)

&#x1f697;Es学习第六站~ &#x1f6a9;Es学习起始站&#xff1a;【微服务】Elasticsearch概述&环境搭建(一) &#x1f6a9;本文已收录至专栏&#xff1a;微服务探索之旅 &#x1f44d;希望您能有所收获 一.引入 单机的elasticsearch做数据存储&#xff0c;必然面临两个…

暗月内网渗透实战——项目七

首先环境配置 VMware的网络配置图 环境拓扑图 开始渗透 信息收集 使用kali扫描一下靶机的IP地址 靶机IP&#xff1a;192.168.0.114 攻击机IP&#xff1a;192.168.0.109 获取到了ip地址之后&#xff0c;我们扫描一下靶机开放的端口 靶机开放了21,80,999,3389,5985,6588端口…

20、CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别

CSS中的px 和 % px (pixels) 是固定单位,也可以叫基本单位&#xff0c;代表像素&#xff0c;可以确保元素的大小不受屏幕分辨率的影响。 % (percentage) 是相对单位&#xff0c;代表元素大小相对于其父元素或视口&#xff08;viewport&#xff09;的大小的百分比。使用百分比可…

linux001之linux系统部署安装

注意&#xff1a;本次安装讲解以乌班图(Ubuntu) 虚拟机来说明讲解&#xff0c;既然学习linux&#xff0c;就无需用图形界面了&#xff0c;直接用服务器版本 1. 下载乌班图 网址&#xff1a;https://www.ubuntu.org.cn/download/server 然后就可以看到右下角有下载提示&#xff…

Scala - Idea 项目报错 Cannot resolve symbol XXX

一.引言 Idea 编译 Scala 项目大面积报错 Cannot resolve symbol xxx。 二.Cannot resolve symbol xxx 1.问题描述 Idea 内的 Scala 工程打开后显示下述异常&#xff1a; 即 Scala 常规语法全部失效&#xff0c;代码出现大面积红色报错。 2.尝试解决方法 A.设置 Main Sourc…

车道线检测-E2E_LSFitting 论文学习笔记

论文&#xff1a;《End-to-end Lane Detection through Differentiable Least-Squares Fitting》 代码&#xff1a;https://github.com/wvangansbeke/LaneDetection_End2End 材料&#xff1a;https://zhuanlan.zhihu.com/p/94419168 特点&#xff1a; 拟合二次曲线&#xff1b…

Kafka安装及zookeeper is not a recognized option问题解决

一安装JAVA JDK&#xff08;略&#xff09; 二安装ZooKeeper 下载安装包&#xff0c;建议bin版本 http://zookeeper.apache.org/releases.html#download解压并进入ZooKeeper&#xff0c;将“zoo_sample.cfg”重命名为“zoo.cfg” D:\Kafka\apache-zookeeper-3.7.1-bin\conf…

Python中类和对象(2)

1.继承 Python 的类是支持继承的&#xff1a;它可以使用现有类的所有功能&#xff0c;并在无需重新编写代码的情况下对这些功能进行扩展。 通过继承创建的新类称为 “子类”&#xff0c;被继承的类称为 “父类”、“基类” 或 “超类”。 继承语法是将父类写在子类类名后面的…

相机坐标系的正向投影和反向投影

1 、正向投影: 世界坐标系到像素坐标系 世界3D坐标系(x, y, z) 到图像像素坐标(u,v)的映射过程 &#xff08;1&#xff09;世界坐标系到相机坐标系的映射。 两个坐标系的转换比较简单&#xff0c;就是旋转矩阵 平移矩阵&#xff0c;旋转矩阵则是绕X&#xff0c; Y&#xff…

nginx中间件常见漏洞总结

nginx中间件常见漏洞总结1.中间件漏洞的概念1.1 中间件、容器、服务器的基本概念辨析2.Nginx 配置错误导致漏洞2.1 $uri导致的CRLF注入漏洞2.1.1 漏洞成因2.1.2 利用方式2.1.3 修改方案2.2 目录穿越漏洞2.1.1 漏洞成因2.2.2 利用方式2.2.3 修改方案2.3 Http Header被覆盖2.3.1 …

JS学习笔记三

目录 一、this详解 1、this原理 2、使用场景 1、普通函数的调用&#xff0c;this指向的是Window 2、对象的方法&#xff0c;this指的是该对象 一、this详解 1、this原理 this是JavaScript的一个关键字&#xff0c;函数调用时才会出现&#xff1b; 因为函数是在一定的环…

Android核心开发【UI绘制流程解析+原理】

一、UI如何进行具体绘制 UI从数据加载到具体展现的过程&#xff1a; 进程间的启动协作&#xff1a; 二、如何加载到数据 应用从启动到onCreate的过程&#xff1a; Activity生产过程详解&#xff1a; 核心对象 绘制流程源码路径 1、Activity加载ViewRootImpl ActivityThread…

Java并发编程概述

在学习并发编程之前&#xff0c;我们需要稍微回顾以下线程相关知识&#xff1a;线程基本概念程序&#xff1a;静态的代码&#xff0c;存储在硬盘中进程&#xff1a;运行中的程序&#xff0c;被加载在内存中&#xff0c;是操作系统分配内存的基本单位线程&#xff1a;是cpu执行的…

Jenkins部署及持续集成——傻瓜式教程

文章目录jenkins安装jenkins启动jenkins登录jenkins插件Jenkin创建一个项目通过Git进行构建构建策略jenkins安装 jenkins官网 https://www.jenkins.io/ 支持Docker pull下载安装 我用的windows&#xff0c;这里下载war包,这个位置下载的是最新的&#xff0c;需要java11或者更…

论文笔记:Depth-supervised NeRF: Fewer Views and Faster Training for Free

中文标题&#xff1a;深度信息监督的神经辐射场&#xff1a;需要更少的视角并且更快的训练 解决的问题&#xff1a; 在缺少视野的情况下&#xff0c;神经辐射场不能拟合正确的几何结构。 创新点 NeRF的第一步需要对场景图像做SFM(structure from motions),这个过程不光会获…

数据库/SQL教学推荐用什么样SQL工具?必须管理方便,轻松上手的

SQL语言逐渐成为职场人士必备的能力。很多人一直走上职场才了解什么是SQL&#xff0c;而更多人在大学就已经开始学习。 这些人一定对类似《数据库原理与应用》的课程不陌生。还记得你们是怎么熬过这门课的吗&#xff1f; 为什么说“熬”呢&#xff1f;实话说&#xff0c;数据库…