初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】

写在开头,此部分博客为记录自学项目中学习过程整理,并非详细技术点研究。

命名空间
  • 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源隔离等。默认所有配置均在public保留空间,需要在bootstrap.properties中配置相应的命名空间。

    在开始前我们启动nacos-server,添加开发、测试、生产的命名空间:
    初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第1张图片
    在新添加的命名空间中添加相关配置:
    初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第2张图片
    并在bootstrap.properties中配置相应的命名空间:(以dev为例,若上上图未设置ID,则使用默认生产的即可)

    spring.application.name=gulimall-coupon
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    # 添加当前微服务模块的命名空间
    spring.cloud.nacos.config.namespace=64e6cfa1-9bd5-4699-b755-77f9a127a270
    

    启动服务,查看效果,配置生效

    {
        "msg": "success",
        "code": 0,
        "userName": "命名空间",
        "userAge": "30"
    }
    
  • 此外,单个微服务之间也可以单独配置命名空间,不同的微服务模块配置不同的命名空间,可以实现服务间的配置隔离。

配置集 && 配置集ID && 配置分组

所有配置的集合叫做配置集,配置集ID为配置文件名
初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第3张图片
默认所有的配置集均属于DEFAULT_GROUP,组别可在新建配置时进行自定义配置

# 配置组别
spring.cloud.nacos.config.group=dev

为每个微服务创建各自的命名空间namespace,使用配置分组区分环境,dev、test、prod。

在配置中心中配置多个配置文件,并加载测试:以coupon微服务模块为例

  • 创建couponnamespace命名空间【区分服务】
    初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第4张图片

  • 在配置列表,新建配置DataID为:gulimall-coupon.properties,Group为:dev【区分环境】
    初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第5张图片

  • application.yml文件拆分为三个文件,配置到nacos配置中心中

    • dataSource.yml,配置数据库相关内容:
      初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第6张图片

    • mybatis.yml,配置ORM框架-mybatis相关配置内容:
      初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第7张图片

    • other.yml,配置其余相关内容:
      初探 SpringCloud Alibaba - Nacos 【命名空间及配置相关内容】_第8张图片

    • 配置bootstrap.properties,使用extension-configs配置多组内容:

      spring.application.name=gulimall-coupon
      spring.cloud.nacos.config.server-addr=127.0.0.1:8848
      # 添加当前微服务模块的命名空间
      spring.cloud.nacos.config.namespace=5e71e41b-f5d7-4f09-a218-f5aaf8f08d50
      # 配置组别
      spring.cloud.nacos.config.group=dev
      
      # 引入多个配置:refresh为是否动态刷新,开启后在配置中心即可动态更新配置
      spring.cloud.nacos.config.extension-configs[0].data-id=dataSource.yml
      spring.cloud.nacos.config.extension-configs[0].group=dev
      spring.cloud.nacos.config.extension-configs[0].refresh=true
      
      spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
      spring.cloud.nacos.config.extension-configs[1].group=dev
      spring.cloud.nacos.config.extension-configs[1].refresh=true
      
      spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
      spring.cloud.nacos.config.extension-configs[2].group=dev
      spring.cloud.nacos.config.extension-configs[2].refresh=true
      
    • 注释application.yml内容,启动服务!仍发出测试请求:

      {
          "msg": "success",
          "code": 0,
          "userName": "这是新的测试!",
          "userAge": "25"
      }
      

      数据库连接也正常,服务可以正常启动并访问!

你可能感兴趣的:(SpringCloud,学习笔记)