spring cloud: 使用consul来替换config server,config key/value 具体的配置详解
1.先添加依赖 之前config server的依赖去掉,换成consul-config的依赖即可。org.springframework.cloud spring-cloud-starter-consul-config
2.修改bootstrap.yml文件(切记,一定是在bootstrap.yml配置),并把原有的config相关配置注释掉
spring:cloud:consul:host: 127.0.0.1port: 8500discovery:tags: version=1.0,author=yjmyzzhealthCheckPath: /info.jsonhealthCheckInterval: 5sinstanceId: ${spring.application.name}:${spring.cloud.client.ipAddress}enabled: trueconfig:enabled: trueformat: YAMLprefix: configdefaultContext: applicationprofileSeparator: ','data-key: data
解释一下:
format:YAML 表示consul中的key-value中的value内容,采用YAML格式
prefix: config 表示consul用于存储配置的文件夹根目录名为config
defaultContext: application 表示配置文件对应的应用名称(eg: 你的服务如果打算取名为myApp,则这里的application就要换成myApp)
profileSeparator: ',' 表示如果有多个profile(eg: 开发环境dev,测试环境test...) ,则key名中的profile与defaultContext之间,用什么分隔符来表示(这里有点费解,后面还会详细解释)
data-key: data 表示最后一层节点的key值名称,一般默认为data
consul中创建kv配置节点

很多文章,包括官方文档这一步都讲得不明不白,关键是 节点名称的命名规则,要与bootstrap.yml中的配置一样,比如我们要创建一个test环境的配置,key名可以取为:
config/application,test/data
这里每一个部分,都要与上一步bootstrap.yml中的一致,上图中5个剪头所指,大家结合上一步中15-19行的解释体会一下。
然后Value值的部分,把配置内容按yml格式填进去就行:

tips: 平时开发时,一般使用consul dev模式,开发模式下kv存储不会持久化存储,全在内存中(重启consul就丢了!),所以一般建议yml配置文件内容,在项目中单独存一个文件,启动调试时,直接把配置文件内容贴到Value框里即可。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
