Spring Cloud Config Server提供了3种配置方式,具体如下:
1. 本地文件系统配置
本地文件系统配置是Spring Cloud Config Server默认采用的一种方式。通过设置spring.profiles.active=native
,配置文件会从本地文件系统中读取,例如:
spring:
profiles:
active: native
application:
name: test-app
cloud:
config:
server:
native:
searchLocations: file:///${user.home}/config-repo
这里指定了读取位置为file:///${user.home}/config-repo
,即在用户的home
目录下的config-repo
文件夹内。
示例:
假设config-repo
路径下存在名为test-app.properties
的配置文件,其内容如下:
server.port=8080
此时,在应用启动时,Spring Cloud Config Server会将配置文件中的端口号设置为8080。
2. Git仓库配置
除本地文件系统配置外,Spring Cloud Config Server还提供了从Git仓库中获取配置的方式,并可选择使用Git附加密码来保护Git仓库的私有性。
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo # Git仓库地址
search-paths: '{application}' # 读取Git仓库下的哪个目录中的配置文件
username: myusername # Git账户名(可选)
password: mypassword # Git账户密码(可选)
例如,在Git仓库中有一个名为test-app.properties
的配置文件,其内容如下:
server.port=8080
此时,在应用启动时,Spring Cloud Config Server会将配置文件中的端口号设置为8080。
3. 配置中心消息总线配置
Spring Cloud Config Server还支持使用消息总线的方式,进行配置更新,使各服务在配置变化时自动更新。
使用消息总线更新配置时,需要在服务中增加spring-cloud-starter-bus-amqp
依赖。同时,需要在application.properties
中配置RabbitMQ消息队列的地址、账号密码等信息。
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.username=username
spring.rabbitmq.password=password
在Spring Cloud Config Server的配置文件中增加spring.cloud.config.server.monitor.enable=true
选项后,每次向配置中心更新配置文件时,Spring Cloud Config Server都会向消息总线发送POST
请求,将更新消息广播出去。
例如,有多个服务连接到了配置中心,为了更新服务的配置,只需使用以下curl命令向Spring Cloud Config Server的/actuator/bus-refresh
接口发起POST请求:
curl -X POST http://localhost:8080/actuator/bus-refresh
接着Spring Cloud Config Server会向消息总线发送刷新配置消息,各服务收到该消息后,即可在不重启的情况下更新已选中自己的配置文件。
总之,Spring Cloud Config Server可以灵活地根据需要选择不同的配置方式,方便配置中心的管理和维护。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring-cloud Config Server的3种配置方式 - Python技术站