1
配置说明:
Server端启动后,提供了如下的接口地址,参数说明
- application:应用名
- profile:环境
- label:版本
1 | /{application}/{profile}[/{label}] |
NOTE:是配置文件的名字一般是有两部分组成,举个例子感受下,alan-provider-data-config-dev.properties,其中alan-provider-data-config是第一部分,这部分建议通过命名规则能让你知道是哪一个项目的配置,并且客户端要配置
spring.cloud.config.name=alan-provider-data-config
,才能让客户端知道自己要去服务端找哪一个配置文件。dev是第二部分,这部分用以区别配置文件应用的场景,是开发环境、测试环境或者生产环境
配置管理:
应用
- 这个比较好理解,每个配置都是属于某一个应用的
环境
- 每个配置都是区分环境的,如dev, test, prod等,在文件名中标注
版本
- 这个可能是一般的配置中心所缺乏的,就是对同一份配置的不同版本管理
- Spring Cloud Config提供版本的支持,也就是说对于一个应用的不同部署实例,可以从服务端获取到不同版本的配置,这对于一些特殊场景如:灰度发布,A/B测试等提供了很好的支持。
仿造qconfig 说明:
(1)同一文件可以区分环境(通过后缀)
(2)不同的应用有不同的文件, 但是,统一应用下应该不能有多个文件,(可以改为,应用名+文件名-环境。properties。拼接 用来 区分 不同应用下面的不同文件)
(3)回滚:目前看来每一个文件都有自己的版本 可以支持 单个文件的回滚
返回样式:(1)
1 | http://localhost:9001/config-server/dev/master |
(2)http://localhost:9001/config-server-dev.properties
1 | test: abc |
抽风异常:
1 | ConfigServer 文件系统 |
更新:
https://www.cnblogs.com/ityouknow/p/6931958.html
webhook和spring cloud bus 配合
热更新:
http://www.jianshu.com/p/ee504c7b6fe2
问题1:
刷新问题:现在可以实现 更新代码,客户端 全部获取到最新的代码,但是没有推送功能,和对应的推送功能(参考qconfig的推送功能)
问题2:
获取配置文件的问题:获取整个文件,而不是 文件中的值,这样可以对外提供接口,灵活使用。
应该要修改源代码
3思路:
server , client jar 然后 代码中加jar 实现热更新, 代码中去扫描,不用再config中做太多的事情
client :(1)存放路径 (是否有版本)(2)怎么把全部配置拉下来(或者)
(2)配置热更新 总线