1.简要说明

  Nacos提供了作为配置中心的功能,只需要在Nacos的控制台页面添加配置,然后在项目中配置相应的"路径"就好。

  主要分为几个步骤:

    在Nacos控制台添加配置

    在项目引入依赖

    配置Nacos上的配置的"路径"

2.Nacos控制台配置说明

  配置管理-配置列表,可以看见我们的配置

   下图是我添加的一个配置

  Nacos的配置的完整名称路径是:命名空间+组Group名+Data Id,类似于项目+包名+类名,这样子可以对配置文件进行较好的分类管理。

  命名空间:默认存在一个命名空间public,也可以自己创建

  

组:在新建配置的时候设置,名字自己随意取

data id:在新建配置的时候设置,data id的值和我们项目中的配置有关,这个后面讲

  

 3.简单实例

3.1创建模块

  

3.2依赖

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

完整

<dependencies>

        <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> <dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
</dependencies>

3.3配置文件

application.yml

spring:
profiles:
active: dev

bootstrap.yml

server:
port: 3377 spring:
application:
name: nacos-config-client #将会作为注册到注册中心的服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #作为注册中心的Nacos的地址
config:
server-addr: localhost:8848 #作为配置中心Nacos的地址
file-extension: yaml #指定yaml格式的配置

为什么这里需要两个配置文件呢,这个data id有关

现在,我们看Data id是怎么形成的

  Data id的格式如下 ${prefix}-${spring.profiles.active}.${file-extension}

  ${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 来配置。目前只支持 properties 和 yaml 类型。

 

  按照我们的配置,Data Id 也就是 nacos-config-client-dev.yaml

   上面的配置,也就是去找地址为 localhost:8848的Nacos,由于我们没有配置命名空间和组,所以找的是默认的命名空间public和默认组DEFAULT_GROUP,Data id是nacos-config-client-dev.yaml的配置

3.4主启动类

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /**
* @Classname NacosConfigClientMain3377
* @Description TODO
* @Date 2021/6/21 0021 下午 3:38
* @Created by jcc
*/
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class,args);
}
}

3.5业务类

package com.atguigu.springcloud.alibaba.controller;

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
@RefreshScope //动态刷新 通过这个注解实现配置的自动刷新,但我们修改配置了,会自动刷新
public class ConfigClientController
{
@Value("${config.info}")
private String configInfo; //读取我们在Nacos上的配置的内容 config.info @GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}

3.6.在Nacos控制台创建配置

  

   Data id的值一定要对应上面项目中的配置形成的Data id的值

  Group采用默认的

  配置格式:选择YAML

  配置内容:config.info: 帅呀

3.7启动项目

  访问http://localhost:3377/config/info,读取到了配置内容

    

修改配置内容

再次访问

发现自动更新了配置内容

4.自定义命名空间和自定义组

4.1创建命名空间

  命名空间-新建命名空间

   id自动生成就好

  

创建成功后

 4.2在mysp命名空间下创建配置

  

选择命名空间为mysp,点击+新增配置

  

    Data id还是之前的不变

  Group:MY_GROUP      (自定义的组的名称)

  配置格式:YAML

  配置内容:mysp---MY_GROUP_帅呀

 4.3修改项目的配置文件

server:
port: 3377 spring:
application:
name: nacos-config-client #将会作为注册到注册中心的服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
config:
server-addr: localhost:8848 #配置中心地址
file-extension: yaml #指定yaml格式的配置 也就是去配置中心3348去找yml配置文件,而application的配置active: dev,有指定了找名字为dev的
namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e
group: MY_GROUP

  添加了两个配置内容:

    namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e    命名空间的id

    group: MY_GROUP   组名
  
   这里去找的是id为55b6e10a-d590-4260-83fc-60db57b47f3e的命名空间下,组名为MY_GROUP,data id为nacos-config-client-dev.yaml的配置

4.4重启项目
  
访问http://localhost:3377/config/info
  

												

spring cloud alibaba - Nacos 作为配置中心基础使用的更多相关文章

  1. Spring Cloud Alibaba Nacos 的 2 种健康检查机制!

    Spring Cloud Alibaba Nacos 作为注册中心不止提供了服务注册和服务发现功能,它还提供了服务可用性监测的机制.有了此机制之后,Nacos 才能感知服务的健康状态,从而为服务调用者 ...

  2. Spring Cloud Alibaba | Nacos服务中心初探

    目录 Spring Cloud Alibaba | Nacos服务中心初探 1. 什么是Nacos? 1.1 Nacos 1.0 1.2 Nacos 2.0 2. Nacos 架构及概念 2.1 服务 ...

  3. Spring Cloud Alibaba | Nacos服务注册与发现

    目录 Spring Cloud Alibaba | Nacos服务注册与发现 1. 服务提供者 1.1 pom.xml项目依赖 1.2 配置文件application.yml 1.3 启动类Produ ...

  4. Spring Cloud Alibaba | Nacos配置管理

    目录 Spring Cloud Alibaba | Nacos配置管理 1. pom.xml 项目依赖 2. 在 bootstrap.properties 中配置 Nacos server 的地址和应 ...

  5. Spring Cloud Alibaba | Nacos集群部署

    目录 Spring Cloud Alibaba | Nacos集群部署 1. Nacos支持三种部署模式 2. 集群模式下部署Nacos 2.1 架构图 2.2 下载源码或者安装包 2.3 配置集群配 ...

  6. 0.9.0.RELEASE版本的spring cloud alibaba nacos实例

    简而言之,nacos与eureka的不同之处有三:后台老板.部署方式.功能.nacos是阿里的,eureka是奈飞的:nacos有自己的安装包,需要独立部署,eureka仅作为一个服务组件,引入jar ...

  7. Spring Cloud Alibaba+Nacos搭建微服务架构

    1. Spring Cloud Alibaba 简介    Spring Cloud Alibaba是阿里巴巴为分布式应用提供的一站式解决方案,能够更方便快捷地搭建分布式平台,nacos拥有着替换eu ...

  8. Spring Cloud Alibaba Nacos Config 的使用

    Spring Cloud Alibaba Nacos Config 的使用 一.需求 二.实现功能 1.加载 product-provider-dev.yaml 配置文件 2.实现配置的自动刷新 3. ...

  9. Spring Cloud Alibaba Nacos 服务注册与发现功能实现!

    Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能. 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连 ...

  10. Spring Cloud 入门教程 - 搭建配置中心服务

    简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...

随机推荐

  1. Dubbo-时间轮设计

    前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrap ...

  2. vulnhub靶场渗透实战11-Deathnote

    ​网络模式,怎么方便怎么来. 靶场地址:https://download.vulnhub.com/deathnote/Deathnote.ova 这个靶机很简单.vbox装好.​ 1:主机发现,和端口 ...

  3. 【数据库】pgsql窗口函数,分组求sum的方式

    select distinct    quantity,    standard_cost,    sum(a.quantity*a.standard_cost) over(partition by ...

  4. 3.7:基于Weka的K-means聚类的算法示例

    〇.目标 1.使用Weka平台,并在该平台使用数据导入.可视化等基本操作: 2.对K-means算法的不同初始k值进行比较,对比结果得出结论. 一.打开Weka3.8并导入数据 二.导入数据 三.Si ...

  5. O-MVLL代码混淆方式

    在介绍O-MVLL之前,首先介绍什么是代码混淆以及基于LLVM的代码混淆,O-MVLL项目正是基于此而开发来的. 有关O-MVLL的概括介绍以及安装和基本使用方式,可参见另一篇随笔 https://w ...

  6. Azure DevOps 中自定义控件的开发

    Azure DevOps 插件: Field Unique Control https://github.com/smallidea/azure-devops-extension-custom-con ...

  7. C#实现文件导入与导出

    无论是文件的导入与导出都需要引入IO库,引入方法如下: using System.IO; 通过以下代码可以实现将文件导入到数组中 string path;//定义一个路径 OpenFileDialog ...

  8. C#从实习到搬砖

    日常唠唠 没事就聊聊我在c#上踩过的那些坑,和一些笔记 少点比较,多些谦虚 会者不难 原博:轩先生大冒险 2022.4.19 datagridview 修改表头 dataGridView1.Colum ...

  9. 在nodejs中体验http/2

    前言 2015年,HTTP/2 发布,直到2021年公司的项目才开始在实践中应用:自己对http2诸多特点的理解只存在于字面上,于是尝试在nodejs中实践一下,加深自己的理解. 多路复用 同域名下所 ...

  10. Mybatis用List接收返回值

    Mybatis 用 List 接收返回值 以 List<Map<String, Object>> 为例 1.XML内 resultType 为单条记录对应类型,设置成 java ...