三、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
接口的请求,就可以实现全局的配置自动刷新。