2 在 bootstrap.properties 中配置 Nacos server 的地址和应用名
1 在Nacos页面的配置管理-配置列表中添加配置信息【Data Id】
2.3 每个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置
Nacos的全称是Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。是阿里巴巴开源易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
本文主要介绍Nacos 融合 Spring Cloud,成为配置中心
一 启动配置管理
1 添加依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${latest.version}</version>
</dependency>
注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。
更多版本对应关系参考:版本说明 Wiki
2 在 bootstrap.properties
中配置 Nacos server 的地址和应用名
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=mall-coupon
说明:之所以需要配置 spring.application.name
,是因为它是构成 Nacos 配置管理 dataId
字段的一部分。
3 添加配置并编写controller类
#application.properties中添加配置
coupon.user.name=couponserver
在CouponController中添加@RefreshScope注解,表示可以实时动态刷新nacos配置文件的信息
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
@Value("${coupon.user.name}")
private String username;
@RequestMapping("/config")
public R config(){
return R.ok().put("memberList", username);
}
}
4 启动项目,访问配置文件与地址
二 Nacos配置
1 在Nacos页面的配置管理-配置列表中添加配置信息【Data Id】
重新启动项目访问地址:
此时可以实现粗颗粒度的Nacos的动态配置
2 命名空间
2.1命名空间:配置隔离
默认:public(保留空间):默认新增的所有配置都在public空间。
可以创建开发、测试、生产三种环境,利用命名空间来做环境隔离。
2.2 同样的在prod生产环境配置相同的配置信息
在配置文件中添加prod对应的id,如果不定义命名空间,则默认使用public中的配置文件, 注意:在bootstrap.properties配置上,需要使用哪个命名空间下的配置
spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=bc61884b-4bb0-43bf-be7d-b8cb229202de
重启服务测试接口:
2.3 每个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置
3 配置集/配置集ID/配置分组
配置集:所有的配置的集合
配置集ID:类似文件名
Data ID:类似文件名
配置分组
3.1 默认所有的配置集都属于:DEFAULT_GROUP
在同一个命名空间下,可以配置多个分组
在程序中,如果想使用prod这个分组的配置信息,则需要在bootstrap.properties文件添加以下配置:
spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=97b235bf-2357-4e43-a74d-369ebf0dced6
spring.cloud.nacos.config.group=dev
测试接口
3.2 从配置中心中同时加载多个配置集
1、将application.yml文件中的配置信息分离,数据库配置的放在一个配置里面,mybatis的相关信息放在一个配置里面,其他的放在other.yml文件中
2、将application.yml文件注释掉
3、在bootstrap.properties文件中配置:
spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=97b235bf-2357-4e43-a74d-369ebf0dced6
spring.cloud.nacos.config.group=dev
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true
spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true
标签:spring,配置,Nacos,Alibaba,nacos,Spring,config,cloud
From: https://blog.csdn.net/HAN_789/article/details/143011864