一,统一配置管理
微服务之间相互调取,消费者通过注册中心调取服务者,但是服务者越来越多,逐个微服务调整会很麻烦 而且调整完还要重启(下节内容热更新) 所以通过配置管理服务。
配置管理服务:会记录微服务核心的配置 微服务启动读取配置管理服务上的配置 与本地配置结合
所以将来修改通过配置管理统一修改就行 当配置管理发现改动后会立刻通知微服务,完成配置读取,和热更新
通过nacos均可管理
首页点加号
命名规则:当前服务+dev+yaml(dev是开发环境,yaml最多) 群组默认
配置内容:不变的不加(如数据库链接 等)改变的 开关类的放在里面
二, 微服务如何拉取配置
传统的配置获取路径
通过nacos后
本来nacos地址在本地的yml文件中 但是它后加载 所以需要优先级更高的bootstrap.yml
这里的服务器名称 开发环境 文件后缀与之前创建的配置管理服务 userservice-dev.yaml一致
通过@Value(“${pattern.dateformat}”)的形式可以获取到配置
然后在通过getmapper方法获取到当前时间
二,热更新
二
@Component 注册为spring的一个bean(该注解是为了让方法可以被任何人使用)
@Data : 注在类上,提供类的get、set、equals、hashCode、toString等方法
@ConfigurationProperties :采用约定大于配置的方式,通过前缀(prefix)加变量名两者拼接跟配置文件一致来完成属性的自动注入
三,多环境配置共享
测试
在controller中加入下面方法:
@GetMapping("prop")
public PatternProperties properties(){
return properties;
}
修改环境:
中的Active profiles
关于优先级 dev>userservice>本地