Nacos+SpringCloud集成使用

官方文档

docker run --name nacos-quick -e MODE=standalone -p 8849:8848 -d nacos/nacos-server:2.0.2

配置-Nacos

在Nacos中添加如下的配置

  1. Data ID: data-id-dev.yaml

    Group: group-name

spring:
  application:
    name: application-name-provider-dev
  1. Data ID: data-id.yaml

    Group: group-name

spring:
  application:
    name: application-name-provider
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        server-addr: "192.168.66.101:8848"
        namespace: "3ceb7b5c-218b-4d17-a9bb-9207a45d105d"
  1. Data ID: ext-1.yaml

    Group: group1

data-id: ext-1.yaml
group: group1
refresh: true

spring:
  data-id: ext-112.yaml
  group: group112
  refresh: true
  1. Data ID: ext-0.yaml

    Group: DEFAULT_GROUP

data-id: ext-0.yaml
group: DEFAULT_GROUP
refresh: true
  1. Data ID: global.yaml

    Group: DEFAULT_GROUP

data-id: global.yaml

配置-SpringCloud

这个一定要是 bootstrap.yml ,而不是application.yml

spring:
  application:
    name: application-name-provider
  profiles:
    # 这里可以指定环境,特定环境的配置优先级更高。
    active: dev
  cloud:
    nacos:
      config:
        #Nacos地址
        server-addr: "192.168.66.101:8848"
        #配置分组
        group: "group-name"
        #配置Id
        prefix: "data-id"
        #配置文件类型
        file-extension: "yaml"
        # 全局共享的配置
        shared-dataids: global.yaml
        # 自动刷新
        refreshable-dataids: global.yaml
        #外部配置
        ext-config[0]:
          # group 和 referesh 使用默认值
          data-id: ext-0.yaml
        ext-config[1]:
          data-id: ext-1.yaml
          group: group1
          refresh: true
#        namespace: "customer-namespace" # 此处可以指定自定义的命名空间
    ### 以上的配置会读取多个配置, 从启动日志中可以看到如下配置被加载,优先级从高到低
    # Located property source:
    #[
    #BootstrapPropertySource {name='bootstrapProperties-data-id-dev.yaml'},
    #BootstrapPropertySource {name='bootstrapProperties-data-id.yaml'},
    #BootstrapPropertySource {name='bootstrapProperties-ext-1.yaml'},
    #BootstrapPropertySource {name='bootstrapProperties-ext-0.yaml'},
    #BootstrapPropertySource {name='bootstrapProperties-global.yaml'}
  #]

启动&测试

  • 启动日志
2021-10-12 16:02:53.147  INFO 1224 --- [168.66.101_8848] o.s.c.a.n.c.NacosPropertySourceBuilder   : Loading nacos data, dataId: 'global.yaml', group: 'DEFAULT_GROUP'
2021-10-12 16:02:53.151  INFO 1224 --- [168.66.101_8848] o.s.c.a.n.c.NacosPropertySourceBuilder   : Loading nacos data, dataId: 'ext-1.yaml', group: 'group1'
2021-10-12 16:02:53.155  INFO 1224 --- [168.66.101_8848] o.s.c.a.n.c.NacosPropertySourceBuilder   : Loading nacos data, dataId: 'data-id.yaml', group: 'group-name'
2021-10-12 16:02:53.159  INFO 1224 --- [168.66.101_8848] o.s.c.a.n.c.NacosPropertySourceBuilder   : Loading nacos data, dataId: 'data-id-dev.yaml', group: 'group-name'
2021-10-12 16:02:53.160  INFO 1224 --- [168.66.101_8848] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-data-id-dev.yaml'}, BootstrapPropertySource {name='bootstrapProperties-data-id.yaml'}, BootstrapPropertySource {name='bootstrapProperties-ext-1.yaml'}, BootstrapPropertySource {name='bootstrapProperties-ext-0.yaml'}, BootstrapPropertySource {name='bootstrapProperties-global.yaml'}]
2021-10-12 16:02:53.161  INFO 1224 --- [168.66.101_8848] o.s.boot.SpringApplication               : The following profiles are active: dev
2021-10-12 16:02:53.168  INFO 1224 --- [168.66.101_8848] o.s.boot.SpringApplication               : Started application in 0.551 seconds (JVM running for 6.327)
2021-10-12 16:02:53.184  INFO 1224 --- [168.66.101_8848] o.s.c.e.event.RefreshEventListener       : Refresh keys changed: []
  • Debug测试配置获取

    从下图可以看到,SpringBoot加载了4个配置源,优先级从高到低依次排列

  • 编码获取配置和SpringBoot一样

    /*  这种方式自动刷新没有效果 */
    @Value("${data-id}")
    String group;
    
    @Autowired
    NacosConfig nacosConfig;
    
    @Configuration
    @ConfigurationProperties("spring")
    @Data
        public class NacosConfig {
            String dataId;
            String group;
            Boolean refresh;
        }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值