SpringCloud Alibaba微服务实战二 - 配置中心管理

SpringCloud Alibaba微服务实战二 - 配置中心管理

目录

SpringCloud Alibaba微服务实战二 - 配置中心管理

重要的概念

配置中心集成

多环境管理

profiles

group进行区分:

可以新建多个命名空间

项目实战操作:


重要的概念

为了避免在Console中迷失自我,有必要先阐述几个重要的概念。

namespace、group和service/dataId

NACOS给的最佳实践表明,最外层的namespace是可以用于区分部署环境的,比如dev,test,uat,product等。同时,也有一个商业利用价值:多租户。以namespace为单位,给用户开辟使用空间。

其它两个领域模型不用多解释了,见名知意。其目的也非常明显,就是为了能够逻辑上区分两个目标对象。

默认情况下,namespace=public,group=DEFAULT_GROUP。

明白了这个数据模型后,可以稍微玩转一下Console了。

配置中心集成

在SpringCloud Alibaba体系中是使用Nacos作为配置中心,这样Nacos既可以作为注册中心也可以作为配置中心,相当于SpringCloud中的Eureka + Config。要接入Nacos的配置中心也很简单,只需要如下几步:

引入配置中心组件spring-cloud-starter-alibaba-nacos-config <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>

在resource中新建文件bootstrap.yml,配置应用名称和注册中心地址 spring: application: name: account-service cloud: nacos: config: server-addr: 10.0.10.48:8848 file-extension: yml

多环境管理

在Nacos中实现多环境管理很容易,可以通过Profiles, Group, Namespace三个维度实现。

profiles

nacos配置中心的DATA ID就相当于一个配置文件的名称,前面一部分我们DATA ID的默认命名方式为${spring.application.name}.${ spring.cloud.nacos.config.file-extension},比如我们之前的配置文件为cloud-payment-service.yml。

如果我们在服务启动的时候指定了服务的环境名称spring.profiles.active,那么DATA ID的命名方式就变成了${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}。

也就相当于项目名称-环境后缀-文件名后缀

比如上面的application我们在bootstrap.yml中设置了spring.profiles.active=dev,那么服务启动时就会去nacos抓取cloud-payment-service-dev.yml这个配置文件的数据。

利用Nacos命名方式的特性我们可以实现多环境配置管理。

group进行区分:

在nacos中建立多个配置文件,以Group进行区分

建立了一个DEV_GROUP 和TEST_GROUP。

修改配置文件,指定spring.cloud.nacos.config.group的值

spring: cloud: nacos: config: server-addr: 1127.0.0.1:8848 file-extension: yml group: DEV_GROUP

这个时候不需要再给服务指定spring.profiles.active属性

可以新建多个命名空间

namespace顺利创建成功后,会在每个一级页面看到由namespace组成的TAB,可以任意切换namespace,对其下的数据进行操作。

spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yml namespace: 7e8ccc22-6f51-42fa-bcf1-db45f99dbf57

Group Group是DATA ID集合的概念,将同一个环境下的配置文件组成一个Group,在服务启动时通过指定spring.cloud.nacos.config.group属性可以让系统加载不同Group的配置文件。

项目实战操作:

修改bootstrap.yml

server:
  port: 8070
spring:
  main:
    allow-bean-definition-overriding: true
  profiles:
    active: dev
  application:
    name: payment-service
    cloud:
      nacos:
        discovery:
          server-addr: 127.0.0.1:8848
          #namespace: b561281a-fb95-411e-b75b-cf36bfc90854
        config:
          server-addr: ${spring.cloud.nacos.discovery.server-addr}
          file-extension: properties
          #namespace: b561281a-fb95-411e-b75b-cf36bfc90854
          #group: payment

新建配置文件

重启服务测试! 

新版本用yaml测试配置一直不生效

后台日志显示:c.a.c.n.c.NacosPropertySourceBuilder     : Ignore the empty nacos configuration and get it based on dataId[payment-service.properties] & group[DEFAULT_GROUP]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值