SpringCloud快速入门(7)---- 数据隔离

需求描述:

  • 项目有多套环境:dev,test,prod
  • 每个环境的每个服务配置都不相同
  • 项目可以通过切换环境加载环境的配置

nacos提供了以下三个概念

  • 命名空间(Namespace): 环境隔离最大粒度隔离,**不同命名空间数据完全独立,**对应 dev /test/prod 三套环境
  • **分组(Group):**配置分组同一环境内,按业务 / 模块分组,区分不同业务域(可选)
  • **数据集(Data ID):**配置文件具体的配置文件,一个服务对应一个,对应每个微服务的配置文件

这三者的关系如下图所示:

命名空间区分不同环境,分组隔离不同业务,数据集代表配置

这里我们创建三个命名空间:

在三个命名空间中分别创建了4个配置

配置导入:

复制代码
#配置命名空间
spring.cloud.nacos.config.namespace=dev

#从nacos获取配置,多个配置使用,分隔,指定分组使用group=xxx
spring.config.import=nacos:common.properties?group=order,nacos:database.properties?group=order

还有种情况,如果不同环境所需得配置文件数目不一样可以这么写:

java 复制代码
# 服务端口
server:
  port: 8000


spring:
  profiles:
    active: test
  application:
    name: servers-order
  # nacos 配置
  cloud:
    nacos:
      # 注册中心
      discovery:
        server-addr: 127.0.0.1:8848
        group: em
        cluster-name: ChenDu
      # 配置中心
      config:
        #选取spring.profiles.active的值,没有默认选择dev
        namespace: ${spring.profiles.active:dev}
        #关闭导入检查
        import-check:
          enabled: false


# 开发环境
---
spring:
  config:
    activate:
      on-profile: dev
    import:
      - nacos:common.properties?group=order

# 测试环境
---
spring:
  config:
    activate:
      on-profile: test
    import:
      - nacos:database.properties?group=order


#生产环境
---
spring:
  config:
    activate:
      on-profile: dev
    import:
      - nacos:common.properties?group=order
      - nacos:database.properties?group=order

---是yaml提供的语法,可以把多个配置写进一个文件,使用时,通过spring.profiles.active的值来确定使用哪一个

相关推荐
Flittly9 分钟前
【AgentScope Java新手村系列】(19)多模态-图像音频视频
java·spring boot·spring
cfm_29142 小时前
SpringBoot启动原理
java·spring boot·spring
漫随流水2 小时前
Java——springboot web案例
java·开发语言·spring boot
干到60岁退休的码农8 小时前
SpringBoot整合Mybatis-plus
spring boot·后端·mybatis
Database_Cool_9 小时前
LLM 语义缓存实战:阿里云 Tair 降低大模型重复调用成本 50%+
数据库·spring·阿里云·缓存
C137的本贾尼10 小时前
第九篇:微服务与分布式——把一个大系统拆成多个小服务
xml·spring boot·后端
cfm_291410 小时前
SpringBoot自定义Starter
java·spring boot·后端
霸道流氓气质10 小时前
Windows 本地搭建 CDC 全链路测试环境(Kafka+Canel+binlog+SpringBoot)
windows·spring boot·kafka
Demon_Hao10 小时前
Spring Boot 4、JDK 25 与 GraalVM:Java 云原生进化,能否撼动 Go 的地位?
java·spring boot·云原生
月落星还在1 天前
Spring MVC 与 Spring Boot:从“手动挡”到“自动驾驶”的进化论,兼谈前后端分离的哲学
spring boot·spring·云原生·mvc