使用Nacos Config作为配置中心配置以及一些容易犯的坑 | 您所在的位置:网站首页 › nacos配置文件的执行顺序 › 使用Nacos Config作为配置中心配置以及一些容易犯的坑 |
官方文档:https://nacos.io/zh-cn/docs/quick-start.html nacos的安装部署,需要先配置好jdk跟maven的环境,运行非常简单,直接官网下载运行即可,按照你的系统选择下载的版本,需要注意的是,必须要选择好你所使用的模式,不同的模式有不同的运行配置要求,下载下来一定要注意配置文件,比较简单的方式就是使用docker+nacos,这样不需要去配置jdk和maven,后面有空会再写一篇关于nacos的安装部署。 1、在你的微服务项目中引入依赖 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config注意:nacos config 和 nacos discover,这两个一个是配置中心,一个是注册中心,一般是与微服务搭配,如springcloud或springcloud alibaba(dubbo),这两个使用的前提都是先得把nacos运行起来。 2、在Nacos上添加你的配置文件默认nacos访问地址http://localhost:8848/nacos/,默认账号是nacos,默认密码nacos Data ID: nacos-config-develop.yaml Group : DEFAULT_GROUP 配置格式: YAML 配置内容: 你的项目配置,比如数据库配置端口配置等,就等基本同于项目的yml配置文件内容
同时在你的项目里创建 bootstrap.yml替代原来的作为配置文件(非常重要),配置文件执行顺序 bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml bootstrap.yml内容如下 spring: application: name: nacos-config cloud: nacos: config: server-addr: localhost:8848 # nacos的服务端地址 file-extension: yaml # 配置文件格式 profiles: active: developspring.application.name 对应的是Data ID nacos-config spring.profiles.active 对应的是Data ID deveop ,他们之间会自动用-隔开。 spring.cloud.nacos.config.file-extension 对应的是配置格式 yaml,可以自己选配置文件的格式,但必须要对应上。 spring.cloud.nacos.config.server-addr 是你nacos的服务端地址,必须是ip+端口,默认端口80也不能省略 配置好后运行程序,他就会自动通过nacos的地址去获取所需要的配置文件内容 nacos config 是支持动态更新的,也就是说直接修改nacos上的内容就可以动态更新你的配置内容 3、获取nacos配置中心的内容的值 nacos: 123456nacos上的配置文件内容如上,有两种获取方式: 1、通过上下文获取 @RestController public class NacosConfigController { @Autowired private ConfigurableApplicationContext applicationContext; @GetMapping("/nacos-config") public String nacosConfig() { return applicationContext.getEnvironment().getProperty("nacos"); } } 2、注解方式获取 @RestController @RefreshScope public class NacosConfigController { @Value("${nacos}") public String appNacos; @GetMapping("/nacos-config") public String nacosConfig() { return appNacos; } } 4、一些注意事项和官方的坑1、配置文件内容一定要写全,一般都是复制粘贴上去,往往很多时候就是没写全却又以为自己写全了,找半天没找到运行报错的原因。 2、文件的编码格式问题,导致中文注释的使用会报错,这个在Linux系统下不会有问题,但在window系统下,部署的nacos的配置文件使用中文注释就会有问题,推荐不使用中文注释。 |
CopyRight 2018-2019 实验室设备网 版权所有 |