当前位置: 首页 > news >正文

Spring Cloud Config 与 Spring Cloud Bus 来实现动态配置文件

要使用 Spring Cloud Config 与 Spring Cloud Bus 来实现动态配置文件,你可以按照以下步骤操作:

### 步骤 1: 添加依赖

首先,确保你的项目中添加了 Spring Cloud Config 客户端和 Bus 的依赖。对于 Maven 项目,`pom.xml` 文件应该包含类似如下的依赖:

```xml
<dependencies>
    <!-- Spring Cloud Config Client -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <!-- Spring Cloud Bus (选择适合你的消息代理的启动器,这里是 RabbitMQ) -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
</dependencies>
```

### 步骤 2: 配置 Config Server

配置一个 Config Server 实例,它将作为配置信息的中心仓库。在 `application.yml` 或 `application.properties` 文件中配置 Git 仓库和搜索路径:

```yaml
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://github.com/your-config-repo.git
          search-paths: config-repo-path
```

### 步骤 3: 启动 Config Server

启动你的 Config Server 应用。它将监听配置文件的更改,并提供配置信息给客户端。

### 步骤 4: 配置 Config Client

在客户端应用的 `bootstrap.yml` 或 `bootstrap.properties` 文件中配置 Config Server 的地址和客户端的名称:

```yaml
spring:
  application:
    name: your-client-name
  cloud:
    config:
      uri: http://localhost:8888 # Config Server 的地址
      profile: dev # 客户端使用的配置文件的 profile
```

### 步骤 5: 启用 Bus

在 Config Server 和客户端应用中配置 Bus。对于使用 RabbitMQ 的情况,在 `application.yml` 中添加:

```yaml
spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
```

### 步骤 6: 刷新端点

确保客户端应用中开启了刷新端点。在 `application.properties` 中添加:

```properties
management.endpoints.web.exposure.include=refresh,bus-refresh
```

### 步骤 7: 触发刷新

当 Config Server 上的配置文件更新后,你可以通过发送 POST 请求到 `/actuator/bus-refresh` 端点来触发所有客户端的配置刷新:

```sh
curl -X POST http://localhost:8080/actuator/bus-refresh
```

### 步骤 8: 使用 @RefreshScope

在客户端应用中,使用 `@RefreshScope` 注解来标记那些需要动态刷新的 Beans。当配置文件更改并触发刷新时,这些 Beans 将重新加载。

### 步骤 9: 测试

更改 Git 仓库中的配置文件,然后触发刷新操作,观察客户端应用的配置是否更新。

通过这些步骤,你可以实现 Spring Cloud Config 和 Bus 的基本使用,以支持配置文件的动态更新。记得根据你的具体环境和需求调整配置和步骤。
 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 五大无线领夹麦克风常见“智商税”揭秘:选购时务必留意
  • 【数据结构】二叉树基础知识
  • AI短视频矩阵工具有什么作用?如何托管账号批量发视频?
  • python(8) : win工具[根据占用端口杀死进程]|[检查端口是否被占用]
  • Swift实时监听判断是否连接有网络WIFI和蜂窝数据
  • 小白零基础学数学建模系列-Day8-多目标规划问题与案例实践
  • 网络安全领域含金量最高的5大赛事,每个网安人的梦!
  • NSSCTF练习记录:[SWPUCTF 2021 新生赛]crypto6
  • 《计算机操作系统》(第4版)第4章 存储器管理 复习笔记
  • 一些比较不错的资源网站
  • 制药 超纯水液体颗粒物检测:lighthouse液体粒子计数器选型 北京中邦兴业
  • 火爆国内外的《黑神话:悟空》,需要什么显卡才能玩?
  • vm 虚拟机无法调用摄像头(亲测有效)
  • 如何将TRIZ技术融入到智能家居的产品设计流程中?
  • 如何优化企业网站的索引情况?
  • hexo+github搭建个人博客
  • @angular/forms 源码解析之双向绑定
  • C++11: atomic 头文件
  • CSS 提示工具(Tooltip)
  • docker容器内的网络抓包
  • dva中组件的懒加载
  • HTTP请求重发
  • JavaScript实现分页效果
  • js递归,无限分级树形折叠菜单
  • Linux快速复制或删除大量小文件
  • python学习笔记-类对象的信息
  • springboot_database项目介绍
  • vuex 笔记整理
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 电商搜索引擎的架构设计和性能优化
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 技术攻略】php设计模式(一):简介及创建型模式
  • ​zookeeper集群配置与启动
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 达梦数据库知识点
  • #### go map 底层结构 ####
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #Linux(make工具和makefile文件以及makefile语法)
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (poj1.3.2)1791(构造法模拟)
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (全注解开发)学习Spring-MVC的第三天
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)【Hibernate总结系列】使用举例
  • (转)负载均衡,回话保持,cookie
  • .equals()到底是什么意思?
  • .net core Swagger 过滤部分Api
  • .Net 基于MiniExcel的导入功能接口示例
  • .NET+WPF 桌面快速启动工具 GeekDesk