Spring Cloud 整合 Bus(附源码)

Spring Cloud 整合 Bus(附源码)

绿林寻猫
2021-12-08 / 0 评论 / 182 阅读 / 正在检测是否收录...

一、前言

本篇笔者是根据上篇进行修改,若有不懂,转《Spring Cloud 入门 之 Config(六)附源码》了解

二、介绍

Spring Cloud Bus 是 Spring Cloud 家族中的一个子项目,用于实现微服务之间的通信。它整合 Java 的事件处理机制和消息中间件消息的发送和接受,主要由发送端、接收端和事件组成。针对不同的业务需求,可以设置不同的事件,发送端发送事件,接收端接受相应的事件,并进行相应的处理。

三、配置

3.1config-server

3.1.1添加依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

 

3.1.2 修改 application.yml:

添加了 rabbitmq 配置和 management 的配置

server:
  port: 10000spring:
  application:
    name: CONFIG
  cloud:
    config:
      server:
        git:
          uri: https://github.com/Uncle-LiuY/config.git
          username: ******
          password: ******
  rabbitmq:
    host: 127.0.0.0
    port: 5672
    username: admin
    password: admin
management:
  endpoints:
    web:
      exposure:
        include: '*' # 暴露接口
eureka:
  instance:
    instance-id: config-api
  client:
    service-url:
      defaultZone: http://localhost:9000/eureka/  # 注册中心访问地址

 

3.2 api

3.2.1 添加依赖;

        <!-- bus -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

 

3.2.2 修改 bootstrap.yml:

添加 rabbitmq 配置

spring:
  application:
    name: api
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG  # config-server 在注册中心的名称
      profile: dev  # 指定配置文件的环境
  rabbitmq:
    host: 127.0.0.0
    port: 5672
    username: admin
    password: admin
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9000/eureka/  # 注册中心访问地址

 

3.2.3 修改TestController

添加 @RefreshScope 注解,顺序一定不能错

@RestController@RequestMapping("/test")@RefreshScopepublic class TestController {    @Value("${env}")    private String env; // 从配置中心获取

    @RequestMapping("/getConfigInfo")    public String getConfigInfo() {        return env;
    }
}

 

 

4.测试

依次启动 eureka-server、config-server、api

4.1 参数原来的值:

4.2 修改文件值为:dev123

4.3 POST执行

http://localhost:10000/actuator/bus-refresh

间隔几秒再执行 http://localhost/test/getConfigInfo 就会发现获取的值变了。

5.项目地址

源码下载

 

到这里还是需要手动调用才能更新,下篇《Spring Cloud 集成 WebHook》讲解在线更新

 

0

评论 (0)

取消