目录
除了注册中心和负载均衡之外,Nacos还是一个配置中心,具备配置管理的功能
Namespace的常用场景之一是不同环境的配置区分隔离.例如开发测试环境和生产环境的配置隔离
为什么需要配置中心?
当前项目的配置都在代码中,会存在以下问题
- 配置文件修改时,服务需要重新部署.微服务架构中,一个服务可能有成百个实例,个部署比较麻烦,且容易出错
- 多人开发时,配置文件可能需要经常修改,使用同一个配置文件容易冲突
配置中心就是对这些配置项进行统一管理.通过配置中心,可以集中查看,修改和删除配置,无需再逐个修改配置文件,提高效率的同时,也降低了出错的风险
快速上手
通过接下来的操作,我们来初步认识Nacos配置中心的使用
参考文档:Nacos Spring Cloud 快速开始 Nacos config
添加配置
在Nacos控制台添加配置项: 配置管理 -> 配置列表 -> 创建配置
🔥注意:配置管理的命名空间和服务列表的命名空间是隔离的,两个是分别设置的.默认是public也就是服务管理命名空间配置配置管理的命名空间
新建配置项
配置内容
nacos.config=public
说明:
- DataID设置为项目名称
- 配置内容的数据格式,目前只支持properties和yam类型
- 设置配置内容
获取配置
引入NacosConfig依赖
<dependency>
<groupId>comalibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--Springcoud2020.*之后版本需要引入bootstrap-->
<dependency>
<groupId>org·Springframeworkcloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
配置bootstrap.properties
微服务启动前,需要先获取nacos中配置,并与application.ym配置合并.在微服务运行之前,Nacos要求必须使用bootstrap.properties配置文件来配置NacosServer地址
spring·application.name=product-service
spring.cloud.nacos.config.server-addr=120.26.87.94:10020
或者使用bootstrap.yml
spring:
application:
name: product-service
cloud:
nacos:
config:
server-addr: 120.26.87.94:10020
spring·application.name
需要和nacos配置管理的DataID一致
spring·cloudnacos·configserver-addr
为NacosServer的地址
🔥注意:配置中心和注册中心的配置是隔离的
Nacos 配置中心:spring.cloud.nacos.config.server-addr
Nacos 注册中心:spring·cloud.nacosdiscovery·server-addr
我们这里来编写程序用来进行接口的调用
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RefreshScope//配置热更新