SpringBoot集成Nacos配置中心和服务注册
安装Nacos
https://blog.csdn.net/Soldoros_/article/details/118943062
引入nacos依赖包
<!-- Spring Boot 启动父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
</parent>
<!-- Nacos服务注册/发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.1</version>
</dependency>
<!-- Nacos配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.1</version>
</dependency>
<!-- SpringBoot2.4版本开始,配置文件加载方式进行了重构,读取bootstrap.yml文件 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.3</version>
</dependency>
基本上分布式项目都遇到过springcloud,springboot,springcloudalibab的版本适配问题,因为如果选择的版本不适配的话将会出各种问题。
配置bootstrap.yml
spring:
application:
name: demo
profiles:
active: dev
cloud:
nacos:
# nacos地址
server-addr: 127.0.0.1:8848
# Nacos服务注册
discovery:
namespace: public
# Nacos配置中心
config:
# 是否开启,默认true,可省略
enabled: true
# 命名空间,如果没有指定命令空间,默认 public,可省略
namespace: public
# 分组名称,如果没有配置Group,则默认值为DEFAULT_GROUP,可省略
group: DEFAULT_GROUP
# 文件名前缀,默认为 spring.application.name 的值,可省略
prefix: ${spring.application.name}
# 开启监听和自动刷新,默认为 true,可省略
refresh-enabled: true
# 从Nacos读取配置项的超时时间,默认值 3000 毫秒,可省略
timeout: 3000
# 读取nacos配置文件后缀
file-extension: yaml
动态刷新配置@RefreshScope
@RefreshScope是spring cloud提供的一种特殊的scope实现,用来实现配置、实例热加载。
当遇到生产环境配置参数需要调整,但又没有配置中心的支持的情况下,只能重启应用以加载新参数,可能会影响业务系统运行,太暴力不优雅;
@RefreshScope注解能帮助我们做局部的参数刷新,但侵入性较强,需要开发阶段提前预知可能的刷新点。
@Component
@RefreshScope
public class YstHttpProxySms {
@Value("${accessKey}")
private String accessKey;
@Value("${secretKey}")
private String secretKey;
@Value("${refreshMin}")
private int refreshMin;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步