文章目录
- 一,命名空间
- 1,简介
- 1.1,命名空间的主要功能和特点
- 1.2,使用场景
- 1.3,如何指定命名空间
- 2,命名空间实战
- 2.1,环境隔离
- 2.2,服务隔离
- 二,配置集
- 三,配置集ID
本节内容详细介绍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上的配置都保持在数据库中,而不是像本地文件那样直接以文件的形式存储。