nacos 配置核心 V1.4.1
参考文档:nacos官网文档
nacos服务端分为单机和集群两者,下文次要讲述单机版
1. 启动篇&部署篇
nacos本地服务
git clone https://github.com/alibaba/nacos.gitcd nacos/mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U打包胜利后会呈现zip,解压后进入distribution/target下,应该会有个nacos-sever-$version.zip,只提取这个至某目录下,解压后进入/nacos/bin- startup.cmd 开启服务- shutdown.cmd 敞开服务如果startup.cmd启动报错,可能是配置文件中默认注明以集群的形式启动的,此时须要编辑startup.cmd,<26>行批改为set MODE = "standalone",即以单机模式启动;
docker部署nacos
docker pull nacos/nacos-server:1.4.1首先,咱们须要去初始化nacos的数据库在上文中nacos-sever-$version.zip解压后,进入/nacos/conf目录下,咱们会发现nacos-mysql.sql脚本,咱们能够应用该脚本进行初始化;另外,临时我只发现须要关注两个配置文件,logs和application.properties在服务器中咱们建设nacos文件夹,并在其中创立logs和config两个文件夹,目标是映射容器内两个文件夹;在config目录下创立application.properties,该文件可参考解压后的文件中/nacos/conf目录下的application.properties,留神开启mysql及以下属性- spring.datasource.platform=mysql- db.url.0- db.user.0- db.password.0配置对应的docker-compose,暂不介绍配置完后即可UP
2. nacos关键点介绍
认识:nacos能够看作一个配置管理核心,通常来说,咱们会把我的项目配置文件写在config下,然而须要批改时咱们须要拜访服务器对应目录下的配置文件进行批改,如果配置文件的变更须要设计多个我的项目,反复操作过多。nacos帮忙咱们解决的就是此类问题,它提供web模式的图形化界面,咱们可在界面中进行批改,配合@RefreshScope注解达到动静更新的目标。
nacos服务端登陆后,在配置管理-配置列表中可创立配置文件配置文件的命名规定为${prefix}-${spring.profiles.active}.${file-extension}通常来说,prefix默认为spring.application.name, 而file-extension为咱们在nacos外面创立配置文件的类型** 这里须要留神: spring.cloud.nacos.config.file-extension可指定file-extension,但必须与咱们nacos中创立的配置文件应用类型雷同 **nacos共有几个关键词需注意- data-id - group- namespace其中data-id为${prefix}-${spring.profiles.active}.${file-extension}group可指定,下文形容;** namespace是齐全隔离的,即不能在一个我的项目中逾越多个namespace **** @Value关键字可读取配置文件中的对应属性 **
3. nacos解决方案:违反初衷的解决方案
我感觉,namespace可作为我的项目名,group可作为版本号,每个我的项目通过namespace做到隔离性,通过group可用作版本隔离,且可用作profiles的隔离;
通常来说,一个我的项目能够分为5个配置文件
- comment.properties 通用配置文件,多个我的项目可克隆复用
- 我的项目名.properties 该我的项目配置文件,次要用来配置该我的项目中在环境切换时不变的属性,如mybatis扫描的相干配置,我的项目公有的配置参数等;
- 我的项目名-profiles(dev,test,pro).properties 不同环境的公有配置,如ip的切换
4. 根本应用如下
spring: application: name: example cloud: nacos: config: prefix: 我的项目名up 优先级大于spring.application.name server-addr: 127.0.0.1:8848 file-extension: yml group: V1_GROUP namespace: 我的项目名 作为命名空间 (以下是依赖于其余配置文件,优先级下方大于上方) extension-configs: - data-id: comment.properties 通用配置 group: COMMENT_V_GROUP refresh: true - data-id: 我的项目名+profikes.properties group: V1_GROUP refresh: true