1.什么是配置中心
1.1.配置中心概述:
a.什么是配置:
- 1.Nacos前4个字母分别是:
Na
ming和C
onfiguration的前两个字母,最后的s为S
ervice - 2.应用程序在启动和运行的时候往往需要读取一些配置信息,
配置基本上伴随着应用程序的整个生命周期
,比如:数据库连接参数、启动参数等
b.配置中心有什么特点:
- 1.配置是
独立于程序的只读变量
: 配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置 - 2.
配置伴随应用的整个生命周期:
配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。 比如:启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务等。 - 3.
配置可以有多种加载方式:
常见的有程序内部硬编码,配置文件,环境变量,启动参数,基于数据库等
- 4.
配置需要治理
: 同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的 配置,所以需要有完善的环境、集群配置管理
c.什么是配置中心:
- 1.在微服务架构中,当系统从
一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移
(分割),这样配置就分散了,不仅如此,分散中还包含着冗余,如下图:
- 2.针对上述问题,我们就可以
将配置中心将配置从各应用中剥离出来
,对配置进行统一管理,应用自身不需要自己去 管理配置。
d.配置中心的服务流程如下:
- 1.用户在配置中心更新配置信息
- 2.服务A和服务B及时得到配置更新通知,从配置中心获取配置
- 3.总得来说,
配置中心就是一种统一管理各种应用配置的基础服务组件
。 在系统架构中,配置中心是整个微服务基础架构体系中的一个组件,如下图,它的功能看上去并不起眼,无非就是 配置的管理和存取
,但它是整个微服务架构中不可或缺的一环
1.2.Nacos与其他主流配置中心对比:
- 1.目前市面上用的比较多的配置中心有:
Spring Cloud Config
、Apollo
、Nacos
和Disconf
、consul等,Disconf不再维护, - 2.下面主要对比一下Spring Cloud Config、Apollo和Nacos
- 2.
从配置中心角度来看
:- 在性能方面
Nacos的读写性能最高
,Apollo次之,Spring Cloud Config依赖Git场景不适合开 放的大规模自动化运维API - 功能方面Apollo最为完善,nacos具有Apollo大部分配置管理功能,而Spring Cloud Config不带运维管理界面,需要自行开发。
- Nacos的一大优势是
整合了注册中心、配置中心功能,部署和操作相比 Apollo都要直观简单
,因此它简化了架构复杂度,并减轻运维及部署工作
- 在性能方面