一:导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
二:修改配置
在应用的bootstrap.yml文件中添加以下内容
spring:
cloud:
consul:
host: 192.168.30.161
port: 8500
config:
enabled: true #启用配置中心
prefix: config #基础文件夹,默认值 config
default-context: application #默认值为application
profile-separator: '-' #环境分隔符,默认值 ","
format: YMAL #配置转码方式,默认 key-value,其他可选:yaml/files/properties
data-key: data #默认为data,配置 key 值,value 对应整个配置文件
watch:
enabled: true #启用配置自动刷新
delay: 1000 #定义刷新间隔.默认1000. 单位毫秒(定时调动api完成刷新)
wait-time: 55 #当配置中心的参数值变动后,应用多久刷新,默认55.单位秒
三:Consul管理页面的配置步骤
1,创建基础文件夹
根据上面配置项 prefix 指定的值创建基础文件夹。在上面的配置中,我们指定了prefix为config,所以首先需要在consul中创建名为config的文件夹
2,创建应用文件夹
配置项 default-context 和 profile-separator 指定了应用名和环境分隔符,根据情况可以在config目录下创建多个子目录(每个子目录可代表一种情况)
1)创建名为application的子目录
2)创建与应用程序同名【spring.application.name】的子目录
3)创建名为 “application” + {profile-separator} + {spring.profiles.active}的子目录
-
4)创建名为 {spring.application.name} + {profile-separator} + {spring.profiles.active}的子目录
例如名为 ipam-upload-service的应用有环境 default、dev、prod,只需在 config 目录下创建 ipam-upload-service、ipam-upload-service-dev、ipam-upload-service-prod 三个文件夹即可
apllication或application+ {profile-separator} + {spring.profiles.active}是默认都会读取的
3,创建key及value
如果format参数使用的不是默认值(key-value),则需要在上面创建的子目录中创建data-key参数指定名称的key。 如上面配置的data-key为data
注意:可以在创建key的同时在下面的“value”区域添加配置信息,也可以在过后点击进来添加或修改配置
四:配置及加载举例说明
1,情景一
特点:配置spring.profiles.active参数
spring:
application:
name: ipam-upload-service
profiles:
active: dev
spring:
cloud:
config:
#prefix: config
#default-context: application
profile-separator: '-'
format: YAML
data-key: data
org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration 在运行时候会加载以下源:
- BootstrapPropertySource {name='bootstrapProperties-config/ipam-upload-service-dev/'}
- BootstrapPropertySource {name='bootstrapProperties-config/ipam-upload-service/'}
- BootstrapPropertySource {name='bootstrapProperties-config/application-dev/'}
- BootstrapPropertySource {name='bootstrapProperties-config/application/'}
这几个文件的优先级为从上到下依次递减。简单的说就是越具体的优先级越高。
如果将default-context的值配置成应用程序名,则上面有关application的加载源将不再存在
2,情景二
特点:不配置spring.profiles.active参数
spring:
application:
name: ipam-upload-service
# profiles:
# active: dev
spring:
cloud:
config:
#prefix: config
#default-context: application
profile-separator: '-'
format: YAML
data-key: data
org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration 在运行时候会加载以下源:
- BootstrapPropertySource {name='bootstrapProperties-config/ipam-upload-service/'}
- BootstrapPropertySource {name='bootstrapProperties-config/application/'}