Nacos Config服务配置中心
课程视频:https://www.bilibili.com/video/BV1VW4y1o7n5
本课程使用的是目前最新版本2022.0.0.0-RC2。基于Spring Boot 3.0与JDK20的开发环境。
集群中每一台主机的配置文件都是相同的,对配置文件的更新维护就成为了一个棘手的问题。此时就出现了配置中心,将集群中每个节点的配置文件交由配置中心统一管理。相关产品很多,例如,Spring Cloud Config、Zookeeper、Apollo、Disconf(百度的,不再维护)等。但Spring Cloud Alibaba官方推荐使用Nacos作为微服务的配置中心。
3.1 常见配置中心工作原理
3.1.1 Spring Cloud Config
其存在三大问题:
- 无法自动感知更新
- 存在羊群效应
- 系统架构过于复杂
3.1.2 Apollo
其Config Client可以自动感知配置文件的更新。但也存在两个不足:
- 系统架构复杂
- 配置文件支持类型较少,其只支持xml、text、properties,不支持json、yml。
3.1.3 Nacos Config
- Config Client通知自动感知配置中心中相应配置文件的更新。
- 架构简单
- 支持的配置文件类型较多(支持JSON与YML)
3.1.4 Zookeeper
Zookeeper作为配置中心,其工作原理与前面的三种都不同。其没有第三方服务器去存储配置数据,而是将配置数据存放在自己的Znode中了。当配置中心中的配置数据发生了变更,Config Client也是可以自动感知到的(Watcher监听机制)。
3.1.5 一致性问题
配置中心中的配置数据一般都是持久化在第三方服务器的,例如DBMS、Git远程库等。由于这些配置中心Server中根本就不存放数据,所以它们的集群中就不存在数据一致性问题。但像Zookeeper,其作为配置中心,配置数据是存放在自己本地的。所以该集群中的节点是存在数据一致性问题的。Zookeeper集群对于数据一致性采用的是CP模式。
作为注册中心,这些Server集群间是存在数据一致性问题的,它们采用的模式是不同的。Zookeeper(CP)、Eureka(AP)、Consul(AP)、Nacos(默认AP,也支持CP)。
3.2 获取远程配置
这里实现的需求是,应用的配置文件不在本地,而由Nacos Config进行管理。
3.2.1 Nacos中完成配置
3.2.1.1 打开配置列表
启动Nacos,然后打开nacos页面。