4. 微服务之Nacos配置管理
创始人
2024-04-07 05:18:46
0

4.1 Nacos配置管理的目的

在这里插入图片描述

可用于对各个服务进行统一配置,并且可以通过修改配置信息来进行服务更新,而不用重启服务

4.2 Nacos控制台添加配置文件

进入配置列表添加文件

在这里插入图片描述

配置信息

在这里插入图片描述

配置文件的Data ID:[服务名称]-[环境].[后缀名] (取名要规范,要不然获取不到该文件)
格式:目前支持 yaml 和 properties

4.3 微服务配置拉取

配置获取步骤:

在这里插入图片描述

在项目启动时,bootstrap.yml 优先级大于 application.yml,所以可以将 nacos 相关配置信息放入 bootstrap.yml 中用于先读取 nacos中的配置文件

  1. 在 pom.xml 中引入 Nacos 的配置管理客户端依赖

    com.alibaba.cloudspring-cloud-starter-alibaba-nacos-config
    
    
  2. 在 resource 目录添加 bootstrap.yml 文件,进行配置,其优先级高于 application.yml 文件

    spring:application:name: user_service # 服务名称profiles:active: dev # 开发环境cloud:nacos:# nacos 地址server-addr: localhost:8848config:file-extension: yaml # 文件后缀名
    

    可以看到,其 服务名称、开发环境、文件后缀名 是要与Nacos控制台中配置文件名 [服务名称]-[环境].[后缀名] 进行对应的

  3. 通过 @Value("${xxx.xxx}") 从配置文件读取值

4.4 微服务热更新

Nacos 中的配置文件变更后,微服务无需重启就可以感知

方式一:

在 @Value 注入的变量所在类上添加注解 @RefreshScope 实时刷新

@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {@Value("${pattern.name}")private String name;@GetMapping("/cfg")public String showCfg() {return name;}
}
方式二(推荐):

创建一个该属性的类进行属性封装,使用 @ConfigurationProperties 注解自动装配属性

@Component
@Data
@ConfigurationProperties(prefix = "pattern") // 前缀对应的是Nacos配置文件中首字段
public class PatternProperties {private String name;private String age;
}

4.5 多环境配置共享

微服务启动时,会从nacos读取多个配置文件:

  • [服务名称]-[环境].[后缀名],例如:userservice-dev.yaml
  • [服务名称].[后缀名],例如:userservice.yaml

无论环境如何变化,[服务名称].[后缀名] 这个文件一定会加载,因此多环境共享配置可以写入这个文件

在这里插入图片描述

多个配置文件属性重复问题:

当 本地配置文件属性 与 nacos 配置文件中 [服务名称]-[环境].[后缀名],[服务名称].[后缀名] 属性重复时,遵循的优先级为:

[服务名称]-[环境].[后缀名] > [服务名称].[后缀名] > 本地配置

即 远端配置 高于 本地配置
在远端配置中,附有环境配置 高于 共享配置

相关内容

热门资讯

恒誉环保(688309)披露关... 截至2025年12月29日收盘,恒誉环保(688309)报收于23.88元,较前一交易日上涨2.58...
一场精准的“政策捕捉” 传鼎晖... 观点网 上海苏州河畔,一幢服务式公寓悄然易主,掀开了住房租赁行业生存逻辑变革的一角。 最新消息显示,...
从制度协同到产业共振 中越合作... [ 完善“边境口岸+产业园区”联动模式,将云南221.4亿元对越贸易额的增长势能延伸至内陆,形成“边...
武进不锈(603878)披露拟... 截至2025年12月29日收盘,武进不锈(603878)报收于10.16元,较前一交易日上涨2.21...
*ST熊猫因涉嫌违反证券法律法... 证券之星消息,12月30日*ST熊猫公开信息显示,熊猫金控股份有限公司因涉嫌违反证券法律法规,信息披...
7岁男孩偷吃邻居“变态辣”外卖... 七岁男孩小雨在小区玩耍时,发现邻居小张家门口的未拆外卖无人看管,便偷偷取走食用。此前小张多次遭遇外卖...
锂矿龙头,涉嫌内幕交易罪单位犯... 12月29日晚,锂矿龙头赣锋锂业发布公告称,公司于12月29日收到宜春市公安局的移送起诉告知书,因涉...
中国铀业聘任张仲斌为总法律顾问... 12月29日,中国铀业(001280)发布公告,王辉因工作安排原因辞去公司总法律顾问职务,辞任后仍担...
[视频]形势政策系列报告会第四... 央视网消息(新闻联播):形势政策系列报告会第四场报告会今天(12月29日)在北京举行。商务部党组书记...
联众(06899.HK)就前执... 格隆汇12月29日丨联众(06899.HK)公告,针对公司前执行董事兼前行政总裁伍国梁在其任职期间于...