Spring Cloud Bus集成Spring Cloud Config Server实现全局配置的自动刷新(二)

2023-04-16 07:52:47 浏览数 (2)

三、Spring Cloud Config Server 的集成

添加依赖

首先需要在项目的 pom.xml 文件中添加 Spring Cloud Config Server 和 Spring Cloud Bus 的依赖:

代码语言:javascript复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

这里选择使用 RabbitMQ 作为消息代理,因此添加了 spring-cloud-starter-bus-amqp 依赖。

配置 Config Server

在项目的 application.properties 文件中添加 Config Server 的配置::

代码语言:javascript复制
spring.application.name=config-server
spring.cloud.config.server.git.uri=https://github.com/your-git-repo/config-repo
spring.cloud.config.server.git.username=your-username
spring.cloud.config.server.git.password=your-password
spring.cloud.config.server.git.clone-on-start=true
spring.cloud.config.server.git.basedir=/tmp/config-repo
spring.cloud.config.server.git.search-paths=config
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.cloud.bus.enabled=true

这里配置了 Config Server 的基本信息,包括 Git 仓库的 URI、用户名和密码,以及 RabbitMQ 的连接信息。另外,还开启了 Spring Cloud Bus。

添加 Spring Cloud Bus 到 Config Server

为了实现全局配置的自动刷新,还需要在 Config Server 中添加 Spring Cloud Bus 的依赖。可以在项目的 pom.xml 文件中添加以下依赖:

代码语言:javascript复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-monitor</artifactId>
</dependency>

这里添加了 spring-cloud-config-monitor 依赖,它可以将 Config Server 的事件发送到 Spring Cloud Bus。

配置 Spring Cloud Bus 到 Config Server

接下来需要在 Config Server 的 application.properties 文件中添加 Spring Cloud Bus 的配置:

代码语言:javascript复制
spring.cloud.bus.enabled=true
spring.cloud.bus.trace.enabled=true
spring.cloud.bus.refresh.enabled=true
spring.cloud.bus.destination=config

这里配置了开启 Spring Cloud Bus,并且配置了刷新配置的事件和消息的目的地为 config。另外,开启了 Spring Cloud Bus 的 trace 日志,可以方便地查看 Bus 消息的发送情况。

监听 Config Server 的事件

最后需要在微服务的配置文件中添加监听 Config Server 的事件:

代码语言:javascript复制
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.name=my-service
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.enabled=true
spring.cloud.config.monitor.enabled=true

这里配置了 Config Server 的访问地址、应用名称、环境以及标签等信息。同时开启了配置的监控,可以实时监测配置的变化。

至此,通过 Spring Cloud Bus 集成 Spring Cloud Config Server 实现全局配置的自动刷新的操作已经完成。在修改配置文件之后,只需要发送 /actuator/bus-refresh 接口的请求,就可以实现全局的配置自动刷新。

0 人点赞