SpringCloud Alibaba Nacos配置中心
Nacos简介
Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计。它可以帮助您轻松构建云本机应用程序和微服务平台。 Nacos基本上支持现在所有类型的服务,例如,Dubbo / gRPC服务,Spring Cloud RESTFul服务或Kubernetes服务。
如果微服务架构中没有使用统一配置中心时,所存在的问题:
-
配置文件分散在各个项目里,不方便维护 配置内容安全与权限 更新配置后,项目需要重启
nacos配置中心的作用:系统配置的集中管理(编辑、存储、分发)、动态更新不重启、回滚配置(变更管理、历史版本管理、变更审计)等所有与配置相关的活动。
1、微服务配置中心背景
-
该文章详细介绍了微服务简介
2、SpringBoot使用Nacos
-
创建项目,项目中加入使用Nacos配置中心的依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>0.2.1</version> </dependency> </dependencies>
-
配置文件Application.yml
spring:
application:
name: nacos-config
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yaml
prefix: nacos-config
profiles:
active: dev
@RestController
@RequestMapping("/v1")
@RefreshScope
public class HelloController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean test(){
return useLocalCache;
}
}
然后在控制层添加@RefreshScope 此注解就可以根据配置文件中的改变,动态的改变,从配置文件获取的信息
-
启动项目访问:http://localhost:8080/v1/get 在配置中心添加一个配置
Data ID的命名规则:
${
prefix}-${
spring.profile.active}.${
file-extension}
前缀-名称.扩展名
(1)prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
(2)spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档
(3)file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。
目前只支持 properties 和 yaml 类型。
注意,当 activeprofile 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {
prefix}.{
file-extension}
-
就可以动态改变useLocalCache的值: 后边再想改变就可以直接修改此文件就行
