首页 > 其他分享 >Nacos-Config

Nacos-Config

时间:2023-05-29 11:24:46浏览次数:29  
标签:配置文件 Config Nacos nacos spring config yml cloud

Nacos 配置文件中心

使用 Spring Cloud Alibaba Nacos Config,可基于 Spring Cloud 的编程模型快速接

入 Nacos 配置管理功能

2.1 创建项目选择依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.2 NacosServer 里面添加一个配置文件

image-20230307204254065

2.3 查看上一讲中创建的数据库中的信息

image-20230307204322371

2.4 config-client-a 项目中添加一个配置文件 bootstrap.yml

image-20230307204337471

yserver:
  port: 8081
spring:
  application:
    name: nacos-config-a
  # 项目在启动的时候去哪里找它对应的配置文件呢??
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        username: nacos
        password: nacos
        prefix: nacos-config-a  # 读哪个配置文件 默认用的是应用名称  是可以修改的
        file-extension: yml  # 文件类型
#        namespace: 默认
#        group:  默认
#  profiles:
#    active: dev

2.5 config-client-a 中添加一个实体类 Hero

package com.example.nacosconfiga.config;



@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@RefreshScope  // 给这个类上 添加一个刷新的作用域
public class Hero {

    @Value("${hero.name}")
    private String name;

    @Value("${hero.age}")
    private Integer age;

    @Value("${hero.address}")
    private String address;

}

2.6 config-client-a 中添加一个测试类 Controller

package com.example.nacosconfiga.controller;


import com.example.nacosconfiga.config.Hero;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @Autowired
    public Hero hero;

    @GetMapping("info")
    public String heroInfo() {
        return hero.getName() + ":" + hero.getAge() + ":" + hero.getAddress();
    }

}

image-20230307204513056

2.8 测试配置文件的动态刷新

修改配置文件,不需要重启,直接请求 http://localhost:8080/heroInfo 查看结果已经刷新了

3.配置文件的读取方式【重点

nacos 配置中心通过 namespace、dataId 和 group 来唯一确定一条配置。

  • Namespace:即命名空间。默认的命名空间为 public,我们可以在 Nacos 控制台中新建

命名空间;

  • dataId:即配置文件名称

  • Group : 即 配 置 分 组 , 默 认 为 DEFAULT_GROUP , 可 以 通 过

spring.cloud.nacos.config.group 配置。

其中:dataId 是最关键的配置字段:格式如下

${prefix} - ${spring.profiles.active} . $

  • prefix 默 认 为 spring.application.name 的 值 , 也 可 以 通 过 配 置 项

spring.cloud.nacos.config.prefix 来配置;

  • spring.profiles.active 即 为 当 前 环 境 对 应 的 profile 。 注 意 , 当

spring.profiles.active 为空时,对应的连接符-也将不存在,dataId 的拼接格式变

成\({prefix}.\){file-extension};

  • file-extension 为 配 置 内 容 的 数 据 格 式 , 可 以 通 过 配 置 项

spring.cloud.nacos.config.file-extension 来配置。

这就是上面我们为什么能获得到配置的原因了。

注意:在写 dataId 的时候一定要添加文件类型后缀

Eg: nacos-config-dev.yml

如果prefix和配置中心的名字一样,不管加不加active都不会拼接,如果是拼接了active才和配置中心的一样就要加后缀

5.获取多配置文件

除了通过上面的方式指定一个唯一配置外,我们还可以同时获取多个配置文件的内容。

提供这个功能 可以再次封装和抽象配置文件管理

5.1 Nacos 中新建两个配置文件

在 powernode 命名空间,继续点击添加两个配置文件

image-20230307214304867

**5.2 **修改 config-client-a 项目的配置文件

server:
    port: 8082
spring:
    application:
        name: nacos-config-test
    cloud:
        nacos:
            config:
                server-addr: localhost:8848
                username: nacos
                password: nacos
                namespace: c52e715f-3f00-4ad8-803b-9c8dba19a221 # 目前读取多配置文件的方式只支持在同一个命名空间下
                file-extension: yml
                extension-configs: # 可以读多个配置文件 需要在同一个命名空间下面 可以是不同的组
                    -   dataId: user-center-dev.yml
                        group: A_GROUP
                        refresh: true
                    -   dataId: member-center-dev.yml
                        group: B_GROUP
                        refresh: false  # 不去动态刷新配置文件
    profiles:
        active: dev

说明:

  • spring.cloud.nacos.config.extension-configs[n].dataId , 指 定 多 个 配 置 的

dataId,必须包含文件格式,支持 properties、yaml 或 yml;

  • spring.cloud.nacos.config.extension-configs[n].group,指定分组;

  • spring.cloud.nacos.config.extension-configs[n].refresh,是否支持刷新。

上面的配置中,我们分别从 DEFAULT_GROUP 中获取了 config-a.yml 和 config-b.yml 配置

内容,并且 config-a.yml 支持刷新,config-b.yml 不支持刷新。

注意:

没有 namespace 的配置,言外之意就是 Nacos 目前还不支持多个配置指定不同的命名空间。

5.3 共享配置文件

server:
    port: 8082
spring:
    application:
        name: nacos-config-test
    cloud:
        nacos:
            config:
                server-addr: localhost:8848
                username: nacos
                password: nacos
                namespace: c52e715f-3f00-4ad8-803b-9c8dba19a221 # 目前读取多配置文件的方式只支持在同一个命名空间下
                group: A_GROUP
                prefix: user-center
                file-extension: yml
                shared-configs: # 共享配置文件
#                    - application-dev.yml  # 这里可以写共享的文件名称 只能在DEFAULT_GROUP
                    - dataId: application-dev.yml  # 这两种写法都可以
                      group: C_GROUP
                      refresh: true

    profiles:
        active: dev

6.Spring Cloud Alibaba Nacos Config 常用的配置

image-20230307220150721

7.两端的配置文件写什么内容

本地的 bootstrap.yml(应用名称,配置文件中心(注册中心地址),读取的配置文件名称信

息)

远端的配置文件(端口,数据源,redis,mq,mybatis,Swagger...)

标签:配置文件,Config,Nacos,nacos,spring,config,yml,cloud
From: https://www.cnblogs.com/firsthelloworld/p/17439909.html

相关文章

  • git 报错;bad config in file .gitconfig
    报错如下解决办法删除.gitconfig文件,然后重启gitbash&vscode即可正常显示分支了。记得重新设置git的账号邮箱。......
  • nacos
    1.官网https://nacos.io/zh-cn/docs/quick-start.html2.下载Nacos输入网址:https://github.com/alibaba/nacos选择Naocs版本1.4.2Linux版:nacos-server-1.4.2.tar.gzWindows版:nacos-server-1.4.2.zip3.安装Nacos3.1Windows下安装解压到需要安装的文件夹下即......
  • ConfigureAwait 干了啥?
    本文引用:异步编程之Async,Await和ConfigureAwait的关系-Leon_Chaunce-博客园(cnblogs.com)走进异步世界-犯傻也值得分享:ConfigureAwait(false)使用经验分享-博客园团队-博客园(cnblogs.com) ConfigureAwait(false)能做什么呢?默认情况下,当您使用async/await时,它将......
  • rnacos v0.1.6版本发布
    rnacos是一个用rust重新实现的nacos。rnacos比java实现的nacos更轻量、快速、稳定;合适在开发、测试、受资限服务等环境平替nacos服务使用。rnacosv0.1.6变更内容完成历史配置历史变更记录页面开发。主要包含查询配置历史记录,与历史记录内容恢复两个功能。修复grpc处理日志......
  • Python 使用ConfigParser操作ini配置文件
    ini配置文件格式如下要求:ini文件必须是GBK编码,如果是UTF-8编码,python读取配置文件会报错。#这里是注释内容#[FY12361]#妇幼保健接口服务端口serverIP=192.168.1.11serverPort=8400[SM]#国产SM加密服务端口serverIP=192.168.1.11serverPort=8500说明:1.注释内容......
  • 8.Nacos
    9.Nacos9.1.SpringCloudAlibaba简介SpringCloudAlibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。依托SpringCloudAlibaba,只需要添加一些注解和少量配置,就可......
  • docker部署nacos集群
    1.环境准备准备4台服务器,一台安装nginx和mysql另三台做集群使用IP服务操作系统192.168.3.215Nginx/MysqlCentOS7.9192.168.3.216Nacos-1CentOS7.9192.168.3.217Nacos-2CentOS7.9192.168.3.218Nacos-3CentOS7.9     mysql选用5.7......
  • 使用 Nacos 的配置功能和自动更新
    Nacos不但可以作为注册中心,同时也可以作为配置中心,方便我们对SpringCloud中的各个SpringBoot微服务的配置进行统一的管理维护。尤其是当微服务数量较多,并且在不同的服务器上进行部署时,使用配置中心进行统一管理维护的优势就更加明显。本篇博客仍然使用之前搭建的Nacos集群......
  • nacos的使用
    nacos的使用1.nacos可以作为注册中心和配置中心使用nacos的配置中心和注册中心的话,我们需要在配置文件中增加关于nacos的配置namespace,group可以不写,那么就是注册到默认的namespace和group下,不同namespace和group下是隔离开来的 2.如果我们只是想要注册到na......
  • Netty+Nacos+Disruptor自研企业级API网关-江潭落月复西斜
    Netty+Nacos+Disruptor自研企业级API网关download:3w51xuebccom使用Netty和SpringBoot实现仿微信的示例在本文中,我们将使用Netty和SpringBoot框架来创建一个简单的聊天应用程序,类似于微信。这个应用程序将支持多用户聊天和即时消息发送。下面让我们来一步步看看如何实现。第一步......