地址?
nacos官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html
nacos社区:https://nacos.io/zh-cn/community/index.html
官方介绍?
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
什么是nacos?
阿里的开源产品,他是针对微服务架构中的服务发现,配置管理,服务治理的综合型解决方案。
服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理。
Nacos 的关键特性?
包括:
服务发现和服务健康监测
动态配置服务
动态 DNS 服务
服务及其元数据管理
配置?
应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期
配置的特点:
-
配置是独立于程序的只读变量
-
配置伴随应用的整个生命周期
-
配置可以有多个加载方式
-
配置需要治理
配置中心?
什么是配置中心?
在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,每个服务都有配置文件,每个配置文件都分散在各个服务中,这样配置就分散了,而且不好管理,不仅如此,分散中还包含着冗余
那么能不能单独构建一个配置中心,让服务都从配置中心拉取配置文件呢?
配置中心的核心功能?
将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理配置
配置中心服务流程?
流程:
-
用户将配置信息发布到配置中心。
-
配置更新通知。用户发布了配置,并且进行了更改,配置中心会通知各个服务。
-
服务从配置中心获取最新配置。
主流配置中心对比?
目前市面上用的比较多的配置中心有:Spring Cloud Config、Apollo、Nacos和Disconf(不再维护)等
对比项目 | Spring Cloud Config | Apollo | Nacos |
配置实时推送 | 支持(Spring Cloud Bus) | 支持(HTTP长轮询1s内) | 支持(HTTP长轮询1s内) |
版本管理 | 支持(Git) | 支持 | 支持 |
配置回滚 | 支持(Git) | 支持 | 支持 |
灰度发布 | 支持 | 支持 | 不支持 |
权限管理 | 支持(依赖Git) | 支持 | 不支持 |
多集群 | 支持 | 支持 | 支持 |
多环境 | 支持 | 支持 | 支持 |
监听查询 | 支持 | 支持 | 支持 |
多语言 | 只支持Java | 主流语言,提供了Open API | 主流语言,提供了Open API |
配置格式校验 | 不支持 | 支持 | 支持 |
单机读(QPS) | 7(限流所致) | 9000 | 15000 |
单击写(QPS) | 5(限流所致) | 1100 | 1800 |
3节点读 (QPS) | 21(限流所致) | 27000 | 45000 |
3节点写 (QPS) | 5(限流所致) | 3300 | 5600 |
总结:
从配置中心角度来看,性能方面Nacos的读写性能最高,Apollo次之,Spring Cloud Config依赖Git场景不适合开放的大规模自动化运维API。
功能方面Apollo最为完善,nacos具有Apollo大部分配置管理功能,而Spring CloudConfig不带运维管理界面,需要自行开发。
Nacos的一大优势是整合了注册中心、配置中心功能,部署和操作相比Apollo都要直观简单,因此它简化了架构复杂度,并减轻运维及部署工作。