springcloudAlibaba的学习(五):nacos-config配置中心的使用

简介

正如springcloudAlibaba的学习(三):nacos组件作为注册中心这篇文章中所说,nacos也是可以作为配置中心来使用的。
本文是关于nacos配置中心的时候和相关的代码。

nacos config

作用

在微服务架构中,是有很多服务的,不同的服务还有不同的环境,如开发,测试,生产等,所以会有很多的配置文件,很多很杂,就可以使用nacos config来统一管理配置。

优点
  1. 便于维护
  2. 时效性
  3. 安全性
  4. 可视化界面

修改了配置可以动态的生效,不用一个个的去服务里面改,然后重启
nacos页面中可以设置用户的权限,只能看相关权限的配置

常用的配置中心

  1. config
  2. apollo
  3. nacos

nacos添加配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
也可以把已有的直接克隆给其他项目,环境
在这里插入图片描述

权限的配置

修改nocas的配置文件application.properties
把nacos.core.auth.enabled改成true

### If turn on auth system:
nacos.core.auth.enabled=true

创建一个用户:
在这里插入图片描述
创建一个角色:
在这里插入图片描述
绑定用户和角色:
在这里插入图片描述
这样就创建了一个只读的用户。
在这里插入图片描述
删除新增都不行。

使用nacos配置中心

使用配置中心需要创建一个bootstrap.yml文件

spring:
  application:
    name: test
  cloud:
    nacos:
      server-addr: localhost:8848

它是根据服务名去nacos页面中拉取对应的dataid的值的。
所以,在nacos添加配置的时候,一般dataid是服务名。
在这里插入图片描述
测试在程序中获取配置的值
在启动类中

@EnableFeignClients
@SpringBootApplication
public class GetOrderApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(GetOrderApplication.class, args);
        String name = applicationContext.getEnvironment().getProperty("name");
        System.out.println(name);
    }

nacos中的各种配置

修改配置中心的其他格式配置

默认是读取配置中心的properties格式的配置的。
在这里插入图片描述
要想读取其他格式的配置
要修改bootstrap.yml文件

spring:
  application:
    name: test
  cloud:
    nacos:
      server-addr: localhost:8848
      config:
        file-extension: yaml 

通过file-extension指定

配置中心配置profile

服务的profile就是根据不同的环境,如开发,测试,生产来加载不同的配置文件。
springboot的常规做法是创建几个配置文件,application-dev,application-pro等,然后在application.yml配置文件中指定。

spring:
	profiles:
		active: dev

配合使用nacos配置中心来配置的话,配置的dataid要设置成服务名-profile.格式
在这里插入图片描述
如果还有默认的配置的话,优先级是profile的高的,如果profile配置中没有的值,但是默认配置中有,会进行补充。

namespace,group,dataid的配置

通常在nacos的配置中心中,namespace是区分环境的,group是区分项目的,dataid是区分服务的。

spring:
  application:
    name: order.service.yaml
  cloud:
    nacos:
      server-addr: localhost:8848
      config:
        file-extension: yaml
        namespcae: dev
        group: mall
        shared-configs:
          - data-id: dataidtest.server.properties
            refresh: true
          - data-id: dataidtest1.server.properties
            refresh: true

关于指定dataid配置的注意点

  • shared-configs这个是指定和服务名不一致的dataid的配置,如公共的配置。
  • refresh: true表示可以动态刷新
  • 在这个配置文件中,file-extension: yaml,group: mall都只是针对默认的配置或profile配置的,即要求order.service.yaml配置的。所以dataidtest.server.properties这个配置可以是任何格式,group如果没有指定的话就是DEFAULT_GROUP的。
  • 在不同的group下,可以有相同的dataid。
  • dataidtest1.server.properties如果有dataidtest.server.properties的配置,那么dataidtest1.server.properties会对dataidtest.server.properties的配置进行覆盖

@RefreshScope注解

代码中使用@value来获取nacos的配置的时候,无法动态获得nacos修改了的配置,需要在controller类上加上@RefreshScope,就可以马上获得nacos修改的配置。

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值