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配置文件
引导类
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来实现配置的自动更新。
所以在这需要修改配置中心、添加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的地址
请求这个地址就会刷新微服务读取新的配置文件
@RefershScope:读取配置文件,配置信息需要更改(不加这个注解改了是不会变化的)
推荐阅读
-
SpringCloud之消息总线Spring Cloud Bus实例代码
-
跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh
-
SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版
-
SpringCloud学习笔记【十三】Spring Cloud Bus消息总线
-
Spring Cloud构建微服务架构--基于kafka构建消息总线BUS
-
跟我学SpringCloud | 第八篇:Spring Cloud Bus 消息总线
-
springcloud config 集成RabbitMQ 和 消息总线Bus 实现服务配置实时刷新
-
springCloudConfig配置中心和消息总线 —— Spring Cloud Bus
-
解析Spring Cloud Bus消息总线
-
Spring Cloud Alibaba 整合nacos作为注册中心和配置中心