Nacos作为服务配置中心。
1.使用:
- 在项目中引入相关依赖:需注意nacos、springboot、spring-cloud、spring-cloud-alibaba版本对应关系
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 2.项目bootstrap.yml配置
spring:
application:
name: consumer
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
namespace: e7a8ccc6-10df-46cd-88a0-cf54157e8ace
group: spmp
server:
port: 8899
-
nacos server端发布配置
nacos server端对data Id配置
需注意:namespace, group, dataId,dataId扩展名(.yaml)均与bootstrap.yml中的配置相同。
-
- 测试
构建测试类
- 测试
@RestController()
@RequestMapping("/something")
@RefreshScope //@RefreshScope 实现配置自动更新
public class SaySomethingController {
@Value("${something:0}")
private Integer something;
@GetMapping("/getSomething")
public Integer getSomething(){
return something;
}
}
- 5.结果
2. 作用
在应用开发中,我们通常要在生产、测试、开发环境之间不断的切换配置文件,手动地在不同环境不同版本间去切换配置文件显然是一种出错概率较大的做法,同时效率也不够高。我们希望将不同环境、版本之间的配置信息存储起来,我们只需要在项目中写明希望发布的版本和环境,让系统去读取到对应的配置文件。注册中心主要的工作就是做这么一件事情,通过namespace:group:service这样一个三元组,将配置文件隔离开来。如namespace按环境、service按servicename + 版本号来划分。当服务连接至配置中心的时候,拉取到对应的配置文件,然后像从本地配置文件读取一样去初始化应用。
image.png
配置中心的第二个作用是:支持自定义扩展的 Data Id 配置,解决多个应用间配置共享的问题,又可以支持一个应用有多个配置文件。假设应用a和b有一部分相同的配置,那么我们可以将这部分共享的配置信息单独拎出来作为一个Data Id,然后各自不同的配置信息各自创建Data Id.在应用中配置a和b的自定义扩展Data Id配置即可,这样少写一部分重复的配置。
第三个作用是: 支持应用中可动态刷新, 感知到最新的配置值,如例子中的@RefreshScope, 在应用中感知到配置值的刷新之后,自动更新value。
网友评论