谷粒商城实战笔记-24-分布式组件-SpringCloud Alibaba-Nacos配置中心-命名空间与配置分组


本节内容详细介绍Nacos配置中心的密码空间和DataId。

一,命名空间

1,简介

在Nacos中,命名空间(Namespace)是一种逻辑隔离的机制,用于区分不同环境或不同租户的配置和服务。

1.1,命名空间的主要功能和特点

  • 环境隔离:通过命名空间,可以隔离开发、测试和生产环境的配置和服务,确保它们不会相互干扰。
  • 租户隔离:在多租户场景下,命名空间可以隔离不同租户的配置和服务,保证租户之间的数据安全和隔离性。
  • 配置管理:命名空间允许用户在不同的命名空间中管理不同的配置集,便于跨环境的配置同步和管理。
  • 服务发现:在服务发现方面,命名空间可以帮助用户在特定的命名空间内查找和访问服务,实现服务的逻辑隔离。
  • 权限控制:Nacos的权限控制可以细化到命名空间级别,允许对不同命名空间的访问进行权限设置。

1.2,使用场景

  • 多环境部署:在开发、测试和生产环境中使用不同的命名空间,以避免配置和服务的冲突。
  • 多租户系统:在云服务或SaaS应用中,使用命名空间来隔离不同租户的服务和配置。
  • 组织结构管理:在大型组织中,使用命名空间来区分不同部门或团队的服务和配置。

1.3,如何指定命名空间

如何在配置文件中指定要使用的密码空间呢?

每个命名空间都有一个唯一的ID,除了public空间外,如果要指定命名空间,只需要将这个命名空间的ID配置到配置文件中即可。

如下图,复制命名空间I。
在这里插入图片描述
配置到bootstrap.properties文件中。

spring.cloud.nacos.config.namespace=346bb1d1-5520-443f-96cb-9f5f36fe864f

在这里插入图片描述
注意必须配置命名空间的ID,不能配置为命名空间的名称。

2,命名空间实战

2.1,环境隔离

在实际工作中,一般都有开发、测试、生产三套环境,每套环境的配置肯定是不一样的, 比如测试环境和生成环境的数据库连接信息肯定不一样。

那么,针对这个情况,可以创建三个命名空间:

  • dev,开发环境
  • test,测试环境
  • prod,生产环境

在这里插入图片描述

然后,不同的环境读取不同命名空间的配置。

比如,在配置文件指定命名空间为dev,测试结果如下图

spring.cloud.nacos.config.namespace=346bb1d1-5520-443f-96cb-9f5f36fe864f

在这里插入图片描述

2.2,服务隔离

在有很多个服务、每个服务有很多配置文件的情况下,可以给每个服务建立一个命名空间,把这个服务的所有配置文件都放在这个密码空间中。

比如,给谷粒商城的优惠券服务建立命名空间coupon

在这里插入图片描述

然后把coupon服务相关的所有配置文件都放在这个密码空间下,在配置文件中指定命名空间ID,就可以读取配置文件了。

spring.cloud.nacos.config.namespace=b72ad17c-3b0d-42d1-aec0-2015ac543335

在这里插入图片描述

当然,命名空间还有其他的使用方式,要结合实际情况进行设计。

二,配置集

配置集是一个逻辑概念,一组配置的集合。

当我们在Nacos上点击创建配置按钮

在这里插入图片描述
配置完成,点击发布的结果就是创建了一个配置集。
在这里插入图片描述

三,配置集ID

配置集ID就是Data Id。

在这里插入图片描述
每一个配置即都有一个唯一的Data Id,某种程度上可以理解为配置文件名。但其不是文件名,Nacos上的配置都保持在数据库中,而不是像本地文件那样直接以文件的形式存储。

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Cloud Alibaba Nacos 是一个服务注册中心和配置中心,可以实现服务的注册与发现、配置的动态管理等功能,同时还提供了容灾和高可用的支持。下面简单介绍如何使用 Nacos 实现 Spring Cloud配置容灾。 首先,在应用的 `pom.xml` 文件中添加如下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.3.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.3.RELEASE</version> </dependency> ``` 然后在 `application.properties` 中配置 Nacos 的地址和应用的名称: ```properties spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.namespace=your-namespace spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=your-namespace spring.cloud.nacos.config.file-extension=properties spring.application.name=your-application-name ``` 其中 `server-addr` 是 Nacos 的地址,`namespace` 是命名空间,`file-extension` 是配置文件的扩展名,`application.name` 是应用的名称。 接着在 `bootstrap.properties` 中配置应用的环境和配置来源: ```properties spring.profiles.active=dev spring.cloud.nacos.config.prefix=${spring.application.name}-${spring.profiles.active} spring.cloud.nacos.config.group=DEFAULT_GROUP spring.cloud.nacos.config.shared-dataids=${spring.application.name}-${spring.profiles.active}.properties ``` 其中 `spring.profiles.active` 是应用的环境,`prefix` 是配置文件的前缀,`group` 是配置文件所在的分组,`shared-dataids` 是配置文件的名称。 最后,在代码中使用 `@Value` 注解来获取配置项的值: ```java @RestController public class ConfigController { @Value("${config.key}") private String configValue; @GetMapping("/config") public String getConfig() { return configValue; } } ``` 其中 `config.key` 是配置项的名称。 以上就是使用 Nacos 实现 Spring Cloud配置容灾的简单示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值