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的值来确定使用哪一个

相关推荐
2601_961194028 小时前
2026初级会计实务公式总结大全|计算题公式手册PDF
java·spring·eclipse·pdf·tomcat·hibernate
星轨zb11 小时前
LangChain4j 集成 Spring Boot:会话记忆 NPE 的根源与 ChatMemoryProvider 正确配置
java·spring boot·后端·langchain4j
混凝土拌意大利面11 小时前
TG-BOOT springboot 功能集散开发框架(AI 协作友好)
人工智能·spring boot·后端
phltxy11 小时前
Spring AI 从提示词到多模态
java·人工智能·spring
北城以北888812 小时前
Quartz定时任务
java·spring boot·intellij-idea
starsky7623814 小时前
基于 Spring AI 构建具备记忆与情绪的多角色 Agent 系统
人工智能·spring·架构
王五周八15 小时前
玩转 Spring AI Agent:基于 SpringBoot 集成 AI 工具与 Skills 能力实践
java·spring
JAVA社区15 小时前
Java高级全套教程(十四)—— SpringData超详细实战详解
java·开发语言·spring cloud·面试·职场和发展
sxlishaobin16 小时前
SpringBoot集成MyBatis的SQL拦截器实战
spring boot·sql·mybatis
码客日记17 小时前
Spring Boot 全局跨域配置与前后端联调避坑
java·spring boot·后端