Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心
前言
随着eureka的停止更新,如果同时实现注册中心和配置中心需要SpringCloud Eureka和SpringCloud Config两个组件;配置修改刷新时需要SpringCloud Bus消息总线发出消息通知(Kafka、RabbitMQ等)到各个服务完成配置动态更新,否者只有重启各个微服务实例,但是nacos可以同时实现注册和配置中心,以及配置的动态更新。
版本声明
Nacos Server: 1.3.2
SpringBoot: 2.3.0.RELEASE
SpringCloud: Hoxton.SR5
SpringCloud Alibaba: 2.2.1.RELEASE
项目实战
1.youlai-auth添加nacos-config依赖
<!-- nacos-config 依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.项目配置文件bootstrap.yml指定nacos配置文件名
spring:
application:
name: youlai-auth
cloud:
nacos:
discovery:
server-addr: http://localhost:8848
config:
file-extension: yaml # 必须修改成yaml
group: DEFAULT_GROUP # 缺省即可
prefix: ${spring.application.name} # 缺省即可
rsa:
publicKey: 123456
注意这里使用bootstrap.yml而非application.yml,避免applicaton.yml后加载于nacos配置并覆盖
SpringBoot读取配置文件顺序:bootstrap.yml>bootstrap.yaml>bootstrap.properties>nacos的配置>application.yml>application.yaml>application.properties
3.添加接口读取配置信息并添加动态刷新配置的注解@RefreshScope
@RefreshScope
@RestController
@RequestMapping("/oauth")
public class AuthController {
@Value("${rsa.publicKey}")
public String publicKey;
@GetMapping("/publicKey")
public Result getPublicKey(){
return Result.success(this.publicKey);
}
}
4.打开nacos管理控制台添加配置
DATA-ID : ${prefix}-${spring.profiles.active}.${file-extension}
a). prefix 默认spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
b). file-extension默认properties,比如我这里使用的是yaml,那么更改spring.cloud.nacos.config.file-extension= yaml
c). Group默认DEFAULT_GROUP,也可以通过配置项 spring.cloud.nacos.config.group来配置
5.启动服务后第一次读取配置信息
6.再次请求接口获取配置信息
可以看到通过接口第二次获取配置信息已变更,完成配置信息的动态刷新
结语
至此youlai-auth模块整合nacos配置中心完成了,是不是相较于eureka整合SpringCloud Config方便了很多,完整代码地址在https://github.com/hxrui/youlai/tree/nacos。未完待续...
本文作者:有来技术
本文链接:https://www.cnblogs.com/haoxianrui/p/13585125.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)