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

相关推荐
IT枫斗者枫哥16 分钟前
Spring Boot Excel 导入实战:把“导入失败”改成逐行错误报告
java·spring boot
杨运交20 分钟前
[073][示例]基于Redis分布式锁的定时任务调度实践
spring boot
jaysee-sjc1 小时前
【苍穹外卖】Day01:从零认识企业级项目开发
java·开发语言·数据库·mysql·spring·intellij-idea·mybatis
吃饱了得干活1 小时前
一个订单的奇幻漂流:RabbitMQ 五大难题实战
spring boot·后端·rabbitmq
程序猿乐锅1 小时前
【黑马点评 | 第二篇】Redis 缓存更新策略与商铺缓存实现
java·网络·redis·spring·mybatis
ss2732 小时前
AI全栈实战 | 1.4-02 Spring AOP:@Transactional 失效的 N 种场景,根因其实只有一个
java·spring·ai编程
雪芽蓝域zzs2 小时前
第 4 章:Postman 安装与基础使用
spring boot
binqian2 小时前
【java】Java 两种锁机制与线程阻塞唤醒原理
jvm·spring boot·spring
宸津-代码粉碎机3 小时前
Java面试核心:JVM三大GC垃圾回收算法原理与生产场景落地分析
java·大数据·人工智能·python·spring
huaweichenai3 小时前
spring boot实现任务异步处理(队列)
java·spring boot