前言
什么是配置中心,有什么作用,为什么选择Nacos
第一节. 配置中心
1. 什么是配置
应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用的整个声明周期,比如数据库,启动参数
- 配置是独立于程序的只读变量
配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置 - 配置伴随着应用的整个声明周期
配置贯穿应用的整个声明周期,引用在启动时通过读取配置来初始化,在运行时根据配置调整行为。
比如:启动时需要读取配置服务的端口,系统在运行过程中需要读取定时策略执行定时任务 - 配置可以有多种加载方式
常见的有程序内hard code,配置文件,环境变量,启动参数,基于数据库等 - 配置需要治理
同一份程序在不同的环境(开发,测试,生产),不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境,集群配置管理
2. 什么是配置中心
在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点时,配置文件也必须跟着迁移,这样配置就分散了,不仅如此,分散中还包含着冗余。
下图显示了配置中心的功能,配置中心将配置从各应用中脱离出来,对配置进行统一管理,应用本身不需要自己去管理配置
第二节. nacos简介
1. 主流配置中心对比
目前主流的配置中心比较多,Spring Cloud Config,Apollo,Nacos,Disconf等
由于Disconf不再维护,下面对比几个主流的配置中心
- SpringCloud Config:Spring官方开源的配置中心
- Apollo: 携程官方开源的项目。
- Nacos:阿里开源项目。
从配置中心的对比,性能上nacos读写性能最好,nacos具有功能也比较丰富。
2. Nacos介绍
Nacos 是阿里的开源项目,它是针对微服务架构中的服务发现,配置管理,服务治理的综合解决方案。
官方地址:https://nacos.io/
3. Nacos四大特性
- 服务发现和服务健康检查
Nacos使服务更容易注册,并通过DNS或HTTP接口发现其它服务,Nacos还提供服务的实时健康检查,以防向不健康的主机或服务示例发送请求 - 动态配置管理
动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序,这使配置的更改更加高效和灵活。 - 动态DNS服务
Nacos提供基于DNS协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在Nacos上的服务以域名的方式暴露端点,让第三方应用方便的查阅及发现。 - 服务和元数据管理
Nacso能让您微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述,生命周期,服务的静态依赖分析,服务的健康状态,服务的流量管理,路由以及安全策略。