nacos 配置中心 V1.4.1

Posted chuhq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nacos 配置中心 V1.4.1相关的知识,希望对你有一定的参考价值。

nacos 配置中心 V1.4.1


参考文档:nacos官方文档

nacos服务端分为单机和集群两者,下文主要讲述单机版

1. 启动篇&部署篇
  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",即以单机形式启动;
  2. 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个配置文件

  1. comment.properties 通用配置文件,多个项目可克隆复用
  2. 项目名.properties 该项目配置文件,主要用来配置该项目中在环境切换时不变的属性,如mybatis扫描的相关配置,项目私有的配置参数等;
  3. 项目名-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的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloudSpring Cloud Alibaba 之 Nacos配置中心(二十八)

你应该了解的Nacos配置中心

在K8S中部署Nacos配置中心

使用nacos配置中心后启动微服务连接不上nacos的问题

Nacos配置中心使用

Nacos:服务注册及配置中心