nacos 配置中心 V1.4.1
Posted chuhq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nacos 配置中心 V1.4.1相关的知识,希望对你有一定的参考价值。
nacos 配置中心 V1.4.1
参考文档:nacos官方文档
nacos服务端分为单机和集群两者,下文主要讲述单机版
1. 启动篇&部署篇
nacos本地服务
git clone https://github.com/alibaba/nacos.git cd 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
以上是关于nacos 配置中心 V1.4.1的主要内容,如果未能解决你的问题,请参考以下文章