当前位置: 代码网 > it编程>编程语言>Java > Nacos Namespace/Group/DataID三者关系解读

Nacos Namespace/Group/DataID三者关系解读

2024年12月25日 Java 我要评论
命名空间(namespace)用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 group 或 data id 的配置。namespace 的常用场景之一是不同环境的配置的区分隔离,例如开

命名空间(namespace)

用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 group 或 data id 的配置。

namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

配置分组(group)

nacos 中的一组配置集,是组织配置的维度之一。

通过一个有意义的字符串(如 buy 或 trade )对配置集进行分组,从而区分 data id 相同的配置集。

当您在 nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 default_group 。

配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 mq_topic 配置。

配置集 id(data id)

nacos 中的某个配置集的 id。配置集 id 是组织划分配置的维度之一。

data id 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。

data id 通常采用类 java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。

配置集:一组相关或者不相关的配置项的集合称为配置集。

在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。

例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。

三者关系

这三者的关系类似于java里面的package名和类名,最外层的namespace是可以用于区分部署环境的,group和dataid逻辑上区分两个目标对象。

默认情况

namespace=public,group=default_group,默认cluster是default

具体情况

nacos默认的命名空间是public,我们就可以利用namespace来实现隔离,比如我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个namespace,不同的n amespace之间是隔离的。

group本身就是分组的意思,它可以把不同的微服务划分到同一个分组里面去。

剩下的就是具体微服务,一个service可以包含多个cluster,nacos默认cluster是default,cluster是对指定微服务的一个虚拟划分。

比如说,将一个service部署在北京和和杭州的机房中,北京机房的service就可以起名为(bj),杭州机房中的service就可以起名为(hz),这样就可以尽量让同一个机房的微服务互相调用,提升性能。

切换不同环境

1. dataid方案

指定spring.profile.active和配置文件的dataid来使不同环境下读取不同的配置,配置规则:默认空间+新建dev和test两个dataid:

  1. 新建dev配置dataid(已经创建完成)
  2. 新建test配置dataid

2. group方案

新建配置的时候填入分组dev_group

同样的方式在建立一个同名的dataid分组为test_group

这里相当于相同的目录下不同的文件

  • 项目配置bootstrap.properties
spring.application.name=nacos-config-client
spring.cloud.nacos.discovery.server-addr=192.168.43.11:8848

# nacos作为配置中心地址
spring.cloud.nacos.config.server-addr=192.168.43.11:8848

# 指定yaml格式的配置
spring.cloud.nacos.config.file-extension=properties

# 配置要使用的nacos配置中心分组
spring.cloud.nacos.config.group=test_group
  • application.properties
# 激活使用profile
spring.profiles.active=info
  • application-info.properties
# nacos配置
server.port=3377

测试效果

3. 命名空间方案

新建命名空间

切换命名空间

  • 修改配置文件bootstrap.properties实现切换
# 指定命名空间 dev
#spring.cloud.nacos.config.namespace=401827ae-19b9-4fb4-a1fc-e55d57e6f6fe

# 指定命名空间 test
spring.cloud.nacos.config.namespace=5e79a451-9283-47cb-ac86-3bae58352240

添加分组和dataid(可以从default空间克隆)

参考上面的方案

测试结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com