Spring Cloud Nacos实战(五)- 命名空间分组和DataID三者关系

Nacos命名空间分组和DataID三者关系

名词解释

命名空间(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逻辑上区分两个目标对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L8jjrMam-1676792124151)(sanzheguanxi .png)]

默认情况

Namespace=public,Group=DEFAULT_GROUP,默认Cluster是DEFAULT

具体情况

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

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

​ 剩下的就是具体微服务,一个Service可以包含多个Cluster,Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分。比如说,将一个Service部署在北京和和杭州的机房中,北京机房的Service就可以起名为(BJ),杭州机房中的Service就可以起名为(HZ),这样就可以尽量让同一个机房的微服务互相调用,提升性能。

切换不同环境

DataID方案

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

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bjTquGf6-1676792124153)(image-20210926170016223.png)]

  2. 通过spring.profile.active属性就能进行多环境下配置文件的读取

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1qiQs6rx-1676792124153)(image-20210926170339921.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3YggPOhS-1676792124154)(image-20210926170620844.png)]

    spring:
      profiles:
        # active: dev #表示开发环境
        active: test #表示测试环境
    
  3. 测试

    最后再次访问:http://localhost:3377/localhost/config/info

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C8PcM1JN-1676792124154)(image-20210926170942161.png)]

Group方案

​ 根据之前的讲解我们都知道Group为分组默认是:DEFAULT_GROUP,所以现在我们就需要分出两组,一组是“Dev开发组”,一组是“test测试组”

  1. 新建Group

    DEV_GROUP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rrya5ATC-1676792124155)(image-20210926171610558.png)]

​ TEST_GROUP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X1uRPfRG-1676792124155)(image-20210926171904382.png)]

配置列表,两个DataID一致,但是分组不同的配置文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LXvg9RjS-1676792124156)(image-20210926171954022.png)]

  1. 完成以上配置以后,接下来就需要通过bootstrap+application来配合完成,具体方式:在config下增加一条Group的配置即可,可以配置为DEV_GROUP或TEST_GROUP

​ bootstrap:

# nacos配置
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格式的配置
        group: TEST_GROUP #增加分组

​ application:

spring:
  profiles:
    # active: dev #表示开发环境	
    # active: test #表示测试环境
    active: info
  1. 测试(可以测试不同分组):

    最后再次访问:http://localhost:3377/localhost/config/info

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJeJSqnU-1676792124156)(image-20210926173730298.png)]

Namespace空间方案

​ 我们已经把DataID方案和Group方案完成了,然后接下来我们来看一下Namespace(命名空间)方案,默认此方案为public,此方案不能删除,我们现在来新建两个命名空间方案

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ELXLt2v3-1676792124157)(image-20210926174051313.png)]

  1. 新建dev/test的Namespace

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Z92ioBd-1676792124157)(image-20210926174422526.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wlgq1o6i-1676792124157)(image-20210926174807843.png)]

  1. 服务管理-服务列表页面查看

    此时我们就可以切换对应的命名空间,然后再通过Group和DataID来进行切换,如果想要切换命名空间,我们就需要通过命名空间ID来进行切换

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AZTONPDU-1676792124158)(image-20210926174422526.png)]

  2. 按照域名配置(Namespace+Group+DataId)编写

    ​ 先通过namespace命名空间ID来确认使用的命名空间

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ru1uAwus-1676792124159)(image-20210926175605787.png)]

    # nacos配置
    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格式的配置
            group: TEST_GROUP # 指定分组
            namespace: 4ba4bf0e-210c-41ce-954c-23538de1dcbc #指定命名空间
    
    spring:
      profiles:
        active: dev #表示开发环境
        # active: test #表示测试环境
        # active: info
    

    然后再回到Nacos配置列表,添加Dev命名空间下的配置,添加3条

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bynn1GVX-1676792124159)(image-20210926180321810.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4uiXyeW2-1676792124159)(image-20210926180120552.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5IipOfAc-1676792124160)(image-20210926180520423.png)]

  3. 测试:访问http://localhost:3377/localhost/config/info来进行测试

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现Spring CloudNacos的整合,你需要先引入相应的依赖包。首先,在你的pom.xml文件中加入以下代码引入Nacos配置中心的依赖包: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${latest.version}</version> </dependency> ``` 接着,在Nacos Spring Cloud中,你需要设置dataId的完整格式。格式如下: `${prefix}-${spring.profiles.active}.${file-extension}` 接下来,你需要导入Spring Boot Web和Nacos客户端的依赖包: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--nacos-config 配置中心-自带动态刷新--> <!-- <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> --> <!--nacos-discovery 注册中心-服务发现与注册--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> ``` 以上是实现Spring CloudNacos整合所需的基本步骤和依赖。你可以根据自己的实际情况进行配置和使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [springcloud alibaba实战(一)----整合nacos(注册中心、配置中心)](https://blog.csdn.net/zhujuntiankong/article/details/120849128)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Spring Cloud Alibaba 整合Nacos实战](https://blog.csdn.net/congge_study/article/details/129338396)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无奈的码农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值