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的值: 后边再想改变就可以直接修改此文件就行