分布式微服务 - 4.配置中心 - 2.Nacos

分布式微服务 - 4.配置中心 - 2.Nacos

项目示例:

  • 项目示例 - 4.配置中心 - 1.Nacos

内容提要:

  • 基本使用

文档:

nacos的下载启动、持久化和集群配置见之前服务注册中的分布式微服务 - 2.服务注册 - 5.Nacos 文章。

基本使用

nacos上配置文件的Data Id命名规则要遵循${prefix}-${spring.profiles.active}.${file-extension} ,按以下使用步骤配置后,微服务启动后会自动加载配置信息。

  • prefix默认为spring.application.name的值,也可以通过配置项spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active即为当前环境对应的profile,可通过配置文件中spring.profiles.active配置
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml(yml) 类型。

使用步骤:

  1. 引入依赖:新版Spring Cloud禁用了bootstrap,需要引入依赖启动
xml 复制代码
        <!--Nacos的配置管理-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <!--新版Spring Cloud禁用了bootstrap,导入依赖启用bootstrap-->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
  1. 配置信息:spring.application.name和nacos配置信息需要放在bootstrap配置中
yml 复制代码
# bootstrap.yml
spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      config:
        # nacos地址
        server-addr: localhost:8848
        # 可配置namespace和group
        group: DEFAULT_GROUP
        # 配置文件的类型
        file-extension: yaml
yml 复制代码
# application.yml
spring:
  profiles:
    active: test
  1. 动态刷新:nacos中配置信息改变时,会自动同步到微服务的配置中,但是@ConfigurationProperties或@Value读取配置信息到类属性上的值,不会自动更新,因此如果有读取到属性上时,需要在类上使用@RefreshScope来动态刷新配置信息的变化。
相关推荐
Mahir087 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
元拓数智8 小时前
智能分析落地卡壳?先补好「数据关系+语义治理」这层技术基建
大数据·分布式·ai·spark·数据关系·语义治理
IT_陈寒11 小时前
Redis缓存击穿把我整不会了,原来还有这手操作
前端·人工智能·后端
kyriewen11 小时前
面试官让我查各部门工资最高的员工,我用AI三秒写出窗口函数,他愣了
后端·mysql·面试
文心快码BaiduComate11 小时前
干货|Comate Harness Engineering工程实践指南
前端·后端·程序员
光辉GuangHui11 小时前
Agent Skill 也需要测试:如何搭建 Skill 评估框架
前端·后端·llm
MY_TEUCK11 小时前
【Java 后端 | Nacos 注册中心】微服务治理原理、选型与注册发现实战
java·开发语言·微服务
我是谁的程序员11 小时前
Mac 上生成 AppStoreInfo.plist 文件,App Store 上架
后端·ios
irving同学4623812 小时前
Node 后端实战:JWT 认证与生产级错误处理
前端·后端
Master_Azur12 小时前
单元测试——Junit单元测试框架
后端