Nacos的配置管理
统一配置管理
-
在Nacos的配置列表中新建配置
-
Data ID:服务名+环境+.后缀名 例 userserver-dev.yaml
-
Group:默认即可
-
配置格式:目前支持 .yaml 和 .properties
-
配置内容:填写一些可变化的配置
将配置交给Nacos管理的步骤
-
在Nacos中添加配置文件
-
再服务中引入nacos的config依赖
<!--Nacos的配置中心依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> -
在微服务中添加bootstrap.yml 配置nacos地址,当前环境,服务名称,文件后缀名,决定了的启动时去nacos读取哪个文件。
#bootstrap.yml 读取的优先级更高 和 application.yml 结合使用
#Nacos的配置中心,和配置中的Data ID :命名一致
spring
配置热更新
-
Nacos配置更改后,微服务可以实现热更新,方式
-
通过@Value注解注入,结合@RefreshScope
-
通过@ConfigurationProperties注入,自动刷新
1.第一步:创建配置类
package cn.itcast.user.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
-
注意:
-
不是所有的配置都适合放到配置中心,维护麻烦
-
建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置。
-
-
多服务共享配置
-
多种配置优先级:
-
总结: 微服务会从Nacos读取配置文件
-
[服务名]-[spring.profile.active].yaml 环境配置
-
[服务名].yaml,默认配置,多环境共享
-
优先级:
-
1 > 2 > 本地配置
-
-
Nacos集群 搭建步骤
-
搭建Mysql集群并初始化数据库表
-
下载解压Nacos
-
修改集群配置(节点信息),数据库配置
-
分别启动多个nacos节点
-
nginx反向代理
Feign
-
Feign
-
Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送
-
-
RestTemplate方式调用存在的问题
-
代码可读性差,编程体验不统一
-
参数复杂URL难以维护
-
-
Feign的使用步骤
-
引入依赖
<!--feign客户端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency> -
添加@EnableFeignClients
-
编写FeignClient接口
package cn.itcast.order.client;
import cn.itcast.order.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
-
package cn.itcast.order.service;
import cn.itcast.order.client.UserClient;
import cn.itcast.order.mapper.OrderMapper;
import cn.itcast.order.pojo.Order;
import cn.itcast.order.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探