当前位置: 首页>后端>正文

nacos的不用namespace nacos namespace group

概述

Nacos作为配置中心,跟传统的配置文件不同。它可以实现线上修改配置,实时生效,中间不需要重启任何应用。

知识点

  • Nacos通过Namespace、Group、DataID来做多环境配置,他们之间的关系如下
  • nacos的不用namespace nacos namespace group,nacos的不用namespace nacos namespace group_nacos的不用namespace,第1张

  • Namespace主要用来区分部署环境的,比如开发环境dev、测试环境test、生产环境prod,他们之间互相是隔离的。Nacos默认的命名空间是public,不可以编辑,也不可以删除
  • Nacos默认的Group是DEFAULT_GROUP,Group可以把不同的微服务划分到同一个分组,例如某电商系统的订单服务、仓储服务、支付服务。
  • DataID是具体的微服务实例,通常每个服务对应一个DataID

引入依赖

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

Controller修改

  • 在Controller类上添加注解 @RestController,实现配置的自动更新
  • 在Controller定义接口,读取配置项developer.author,以此来验证配置实时更新
@RestController
@RefreshScope
public class HelloController {

    @Value("${server.port}")
    private String port;

    @Value("${developer.author}")
    private String author;

    @RequestMapping(value = "/echo/{name}", method = RequestMethod.GET)
    public String echo(@PathVariable String name){
        return "Hello Nacos:" + name +
                ",Port:" + port +
                ",author:" + author;
    }
}

Nacos配置

Nacos的菜单 配置管理 -> 配置列表 点击新增,创建新的配置

  • Data ID:这里定义为test-provider-config.yaml,完整格式如下
${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-exetension: 配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型


  • 配置格式:这边选择yaml
  • 配置内容:把原生产者项目的application.yml拷过来,并添加developer.author测试项

nacos的不用namespace nacos namespace group,nacos的不用namespace nacos namespace group_spring_02,第2张

spring:
  application:
    name: test-provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.25.131:8848

server:
  port: 8010

management:
  endpoints:
    web:
      exposure:
        include: "*"

developer:
  author: 张三

bootstrap.properties

  • 删除生产者工程的application.yml文件,因为我们已经复制到Nacos配置了
  • 创建bootstrap.properties,这是SpringBoot工程第一个加载的配置文件。把以下配置复制进去,IP改成自己的就行
spring.application.name=test-provider-config
spring.cloud.nacos.config.server-addr=192.168.25.131:8848
spring.cloud.nacos.config.file-extension=yaml

测试

运行Provider程序,测试接口http://localhost:8010/echo/zhangsan。结果如下,有正确地读到了Nacos配置的developer.author

nacos的不用namespace nacos namespace group,nacos的不用namespace nacos namespace group_Nacos_03,第3张

打开Nacos把刚才的developer.author改成李四,然后点击发布按钮

developer:
  author: 李四

再次测试

nacos的不用namespace nacos namespace group,nacos的不用namespace nacos namespace group_配置管理_04,第4张

Nacos配置中心的基本使用就到这里了


https://www.xamrdz.com/backend/3qk1957574.html

相关文章: