微服务:配置管理
为什么引入了配置管理?
微服务内重复配置过多,维护成本较高
业务配置经常变动,每次修改都要重启服务
网关路由配置写死,如果改写需要重启网关
配置文件共享
首先在nacos中创建一个配置:
在配置管理的配置列表中,右边点击加号
填写dataId,修改配置内容,支持使用${value}读取application.yml中的数据
载入依赖
<!--nacos配置管理--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!--读取bootstrap文件--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
在springcloud项目的res中添加bootstrap.yml
spring:
application:
name: user-service # 微服务名称
profiles:
active: dev
cloud:
nacos:
server-addr: 192.168.88.95:8848
config:
file-extension: yaml
shared-configs:
- data-id: jdbc.yaml
- dataId: log.yaml
- dataId: swagger.yaml
修改application.yml
server:
port: 8086
hm:
db:
database: hm-pay
swagger:
title: 黑马商城支付接口文档
description: "黑马商城支付接口文档"
resname: pay
配置热更新(这里千万要遵循老师指导:能cv绝不手写,不然你就要像我一样一个错误查一个小时最后发现是单词拼错了)
首先在模块内创建一个属性读取类来读取需要热更新的属性
@Data @Component @ConfigurationProperties(prefix = "hm.cart") public class CartProperties { private Integer maxAmount; }
将配置添加至nacos中,文件名需要遵守的格式为
[服务名]-[spring.active.profile].[后缀名]
spring.active.profile
,可以省略,则所有profile共享该配置hm:
cart:
maxAmount: 1
随后该参数直接在nacos中改动即可,不需要重启服务器就可以实现参数变动。在console中我们可以看到maxAmount改动后生效了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端