Nacos分布式配置中心
-
- 1 分布式配置中心
-
- 1.1 什么是分布式配置中心
- 2 技术选型对比
- 3 Nacos配置中心使用
-
- .3.1 整合Nacos配置中心
- 3.2 基本使用
1 分布式配置中心
1.1 什么是分布式配置中心
? 在微服务架构下,每个服务都会都会有自己的配置文件,此时传统的配置文件方式则会造成诸多问题:
时效性:修改配置,需要重启服务才能生效。
局限性:无法支持动态调整,如服务地址修改。
因此,分布式配置中心应运而生。其为所有的微服务提供了一个中心化的外部配置环境, 服务的配置信息都可以存放到分布式配置上,从而解决如上的诸多问题。
2 技术选型对比
? 现在市面上对于分布式配置中心的实现有很多种,如SpringCloud的Bus+Config、携程的Apollo、百度的Disconf、XXL-Conf、Zookeeper、阿里的Nacos等等。
? 他们各自都有一些各自的特点,其中最为活跃和主流的当属:携程的Apollo、阿里的Nacos。由于当前项目已经整合了Nacos,所以此处讲解Nacos作为分布式配置中心的使用。
3 Nacos配置中心使用
.3.1 整合Nacos配置中心
1)修改用户服务pom文件,添加nacos配置中心依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2)修改consumer-service的bootstrap.yaml文件,添加配置中心Nacos的地址
spring: application: name: user-service cloud: nacos: discovery: server-addr: 192.168.200.150:8848 # nacos服务地址 config: server-addr: 192.168.200.150:8848 # nacos配置中心地址 file-extension: yaml
3.2 基本使用
1)nacos配置中心新建配置文件
规范如下:
配置文件名称:默认和 spring.application.name一致 。
文件后缀:nacos支持六种文件格式。分别为:TEXT、JSON、XML、YAML、HTML、Properties。默认是 properties,当项目指定后缀名,则同项目中一致。
新建配置:
company: it
2)修改UserController,获取配置中心内容
@Value("${company}") private String companyName; @RequestMapping("/hello") public String hello(){ return "hello user service,company : "+companyName; }
3)测试访问用户服务hello接口
不同的命名空间下,可以存在相同名称的配置分组(Group) 或 配置集。
最佳实践
Nacos抽象定义了Namespace、Group、Data ID的概念,具体这几个概念代表什么,取决于我们把它们看成什么,这里推荐一种用法,如下:
Namespace:代表不同环境,如开发、测试、生产环境。
Group:代表某项目,如XX医疗项目、XX电商项目
DataId:每个项目下往往有若干个工程,每个配置集(DataId)是一个工程的主配置文件