欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springCloudConfig配置中心和消息总线 —— Spring Cloud Bus

程序员文章站 2022-06-21 14:28:25
...

springCloudConfig简介

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所 以需要分布式配置中心组件。

在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库 中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。

配置中心的使用(server)

application.yml

server:
  port: 12000
spring:
  application:
    name: tenquare-config
  cloud:
    config:
      server:
        git:
          #配置文件所在的仓库的地址
          uri: https://gitee.com/itcast_xu/tensquare-config336.git

git配置文件

springCloudConfig配置中心和消息总线 —— Spring Cloud Bus

引导类

package com.tensquare.config;

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

@SpringBootApplication
//开启配置中心注解
@EnableConfigServer
public class ConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class, args);
    }
}

客户端(微服务使用配置中心的配置)

依赖

<!--添加使用配置中心的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

bootstarp.yml

删除application.yml

spring:
  cloud:
    config:
      #使用的配置文件名是base-dev.yml
      #配置文件名前半部分
      name: base
      #配置文件名后半部分
      profile: dev
      #git仓库的分支名称
      label: master
      #配置中心访问地址
      uri: http://127.0.0.1:12000

消息总线 —— Spring Cloud Bus

简介

如果我们更新码云中的配置文件,那客户端工程是不能及时接受新的配置信息。

修改服务器中的配置并没有更 新立刻到工程,只有重新启动程序才会读取配置。

那我们如果想在不重启微服务的情况 下更新配置如何来实现呢? 我们使用SpringCloudBus来实现配置的自动更新。

springCloudConfig配置中心和消息总线 —— Spring Cloud Bus
所以在这需要修改配置中心、添加mq和修改各微服务,

配置中心

依赖

<!--配置中心,添加消息总线的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-bus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>

application.yml

server:
  port: 12000
spring:
  application:
    name: tenquare-config
  cloud:
    config:
      server:
        git:
          #配置文件所在的仓库的地址
          uri: https://gitee.com/itcast_xu/tensquare-config336.git
  #配置消息总线使用的RabbitMQ服务的地址
  rabbitmq:
    host: 192.168.72.131
#配置如何通知配置中心
management:
  endpoints:
    web:
      exposure:
        include: bus-refresh

客户端

依赖

<!--添加使用配置中心的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

        <!--添加消息总线微服务客户端的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-bus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

git文件配置rabbitMQ的地址

springCloudConfig配置中心和消息总线 —— Spring Cloud Bus
请求这个地址就会刷新微服务读取新的配置文件
springCloudConfig配置中心和消息总线 —— Spring Cloud Bus

@RefershScope:读取配置文件,配置信息需要更改(不加这个注解改了是不会变化的)
springCloudConfig配置中心和消息总线 —— Spring Cloud Bus

相关标签: spring