您当前的位置: 首页 > 

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

谷粒商城15-Nacos支持的三种配置加载方案

java持续实践 发布时间:2020-08-01 19:40:54 ,浏览量:1

文章目录
      • 相关的概念
      • Namespace(名称空间)方案
      • DataID方案
      • Group方案
      • 本项目使用的配置方案
Nacos支持的三种配置加载方案 Nacos支持“Namespace+group+data ID”的配置解决方案。 详情见:https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc

相关的概念

命名空间 用于进行租户粒度的配置隔离, 不同的命名空间下, 可以存在相同的Group 或Data ID的配置. 命名空间的常用场景之一是不同环境的配置的区分隔离, 例如开发环境, 测试环境 和生产环境的资源(如配置, 服务的隔离等)

配置集 一组相关或者不相关的配置项的集合 称之为配置集, 在系统中, 一个配置文件, 通常就是一个配置集.包含了系统各个方面的配置, 例如, 一个配置集可能包含了数据源, 线程池, 日志级别的配置项等. 所有的配置的集合 , 就叫配置集.

配置集ID Nacos中的某个配置集 ID, 配置集ID是组织 划分配置的维度之一, DataID 通常用于组织划分系统的配置集, 一个系统或者应用可以包含多个配置集, 每个配置集都可以被一个有意义的名称标识, DataID通常采用类Java包 例如com.taobao.tc.refund.log.level 的命名规则, 保证全局唯一性. 此命名规则非强制性 类似于文件名 . Data ID 就是配置集的ID

配置分组 Nacos中的一组配置集, 是组织配置的维度之一, 通过一个有意义的字符串(如 Buy 或Trade) 对配置集进行分组, 从而区分 Data ID相同的配置集. 当您在Nacos上创建一个配置时, 如果未填写配置分组的名称, 则配置分组的名称默认采用DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置. 默认所有的配置集, 都属于DEFAULT_GROUP. 新建立分组, 是在新建配置的时候, 手动输入Group组.

Namespace(名称空间)方案

通过命名空间实现环境区分 下面是配置实例: 1、创建命名空间: “命名空间”—>“创建命名空间”: 命名空间的作用 1.用于配置隔离 开发 测试 生产环境各有命名空间. 如下创建 三个环境的命名空间 创建三个命名空间,分别为dev,test和prop 2、回到配置列表中,能够看到所创建的三个命名空间 下面我们需要在dev命名空间下,创建“gulimall-coupon.properties”配置规则: public克隆配置到prop中 Prop中的配置修改如下 修改coupon微服务的配置文件, 指定使用哪个命名空间, 如下指定的是prop命名空间的uuid 浏览器访问 http://localhost:7000/coupon/coupon/test 可以看到获取的数据为prop中的配置信息 但是这种命名空间的粒度还是不够细化,对此我们可以为项目的每个微服务module创建一个命名空间。 每一个微服务都创建自己的命名空间, 只加载自己命名空间下的所有配置 6、为所有微服务创建命名空间 7、回到配置列表选项卡,克隆pulic的配置规则到coupon命名空间下 切换到coupon命名空间下,查看该命名空间的id 8、修改“gulimall-coupon”下的bootstrap.properties文件,添加如下配置信息 spring.cloud.nacos.config.namespace= 815d84b4-93a5-493a-89f4-a913b2b8b676 这里指明的是,读取时使用coupon命名空间下的配置。 9、重启“gulimall-coupon”,访问:http://localhost:7000/coupon/coupon/test

DataID方案

通过指定spring.profile.active和配置文件的DataID,来使不同环境下读取不同的配置,读取配置时,使用的是默认命名空间public,默认分组(default_group)下的DataID。 默认情况,Namespace=public,Group=DEFAULT GROUP,默认Cluster是DEFAULT

例如如图不同的dataid

Group方案

通过Group实现环境区分 实例:通过使用不同的组,来读取不同的配置,还是以上面的gulimall-coupon微服务为例 1、新建“gulimall-coupon.properties”,将它置于“11111”组下 2、修改“bootstrap.properties”配置,添加如下的配置 spring.cloud.nacos.config.group=11111 3、重启“gulimall-coupon”,访问:http://localhost:7000/coupon/coupon/test 在这里插入图片描述

本项目使用的配置方案

每个微服务创建自己的命名空间, 使用配置分组区分环境, dev test prod 如下图所示

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0389s