存在的问题
某服务群端口不同,其他配置相同,修改配置及其不方便
nacos配置中心
修改配置文件只需修改一份即可
修改完配置文件项目不需要重启
新建nacos配置
bootstrap.yaml读取nacos中的配置文件(bootstrap比application先加载)
读取规则
通过指定的nacos服务地址,namespace,group,找到prefix前缀和file-extension后缀的文件(如果有环境,则文件为:{spring.profiles.active}.${spring.cloud.nacos.config.file-extension})
Data id命名规范是:服务名-环境名.yaml/properties
server:
port: 8083
spring:
application:
name: nacos-config-a
cloud:
nacos:
config:
server-addr: localhost:8848
username: nacos
password: nacos
namespace: 260ded69-63a7-4237-963d-4c9fb8beb1eb
prefix: ${spring.application.name}
file-extension: yaml
测试nacos配置文件是否成功读取
/**
* 配置文件中的属性
*/
@Component
@RefreshScope //自动刷新配置
public class Config {
@Value("${config.version}")为
private String version;
public String getVersion() {
return version;
}
}
@RestController
public class ConfigInfoController {
@Autowired
private Config config;
@GetMapping("version")
public String getVersion(){
return config.getVersion();
}
}
修改nacos配置文件,已实现配置文件自动更新
配置mysql存储后可切换历史版本
使用
@RefreshScope
动态刷新配置
使用@Value
获取配置
关于namespace和group
每个微服务创建自己的namespace,再使用group区分环境(dev,test,prod)
读取多配置文件
yml
properties