前言
一、什么是Nacos?
官方描述:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
愿景:Nacos通过提供简单易用的动态服务发现、服务配置、服务共享与管理等服务基础设施,帮助用户在云原生时代,在私有云、混合云或者公有云等所有云环境中,更好的构建、交付、管理自己的微服务平台,更快的复用和组合业务服务,更快的交付商业创新的价值,从而为用户赢得市场。
二、功能有哪些?
动态配置服务
动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
服务发现及管理
动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。
动态DNS服务
通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。
三、特性有哪些?
易于使用
动态配置管理、服务发现和动态的一站式解决方案20多种开箱即用的以服务为中心的架构特性基本符合生产要求的轻量级
更适应云架构
无缝支持Kubernetes和Spring Cloud在主流公共云上更容易部署和运行(例如阿里云和AWS)多租户和多环境支持
生产等级
脱胎于历经阿里巴巴10年生产验证的内部产品支持具有数百万服务的大规模场景具备企业级SLA的开源产品
丰富的应用场景
支持限流、大促销预案和异地多活直接支持或稍作扩展即可支持大量有用的互联网应用场景流量调度和服务治理
四、Nacos地图
特性大图:要从功能特性,非功能特性,全面介绍我们要解的问题域的特性诉求
架构大图:通过清晰架构,让您快速进入Nacos世界
业务大图:利用当前特性可以支持的业务场景,及其最佳实践
生态大图:系统梳理Nacos和主流技术生态的关系
优势大图:展示Nacos核心竞争力
战略大图:要从战略到战术层面讲Nacos的宏观优势
五、Nacos生态图
如Nacos全景图所示,Nacos无缝支持一些主流的开源生态,例如
Spring Cloud
Apache Dubbo and Dubbo Mesh
Kubernetes and CNCF。
使用Nacos简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。
关于如何在这些生态中使用 Nacos,请参考官方文档:什么是Nacos
六、Nacos概念
可以通过如下官方文档的描述,先行了解Nacos的概念:
https://nacos.io/zh-cn/docs/concepts.html
PS: 以上概念非常重要,需要认真看一下,否则会对 Nacos 理解产生很多阻碍
下面我抽出几个单独讲一下:
命名空间:常用于生产环境隔离,比如dev/test/beta/prod等
配置:应用的配置文件,常用 yml/json 格式存储,一个应用服务可以配置多个配置文件,需要设置扩展,配置ID唯一,常用表现形式=应用名/应用名+Profile(举个栗子:mall-test.yml)
配置管理:可以对配置文件进行管理,配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动
配置项:key/value形式的配置内容,应用application.yml/bootstrap.yml等文件的内容项
服务:服务名称=应用名称,服务分组=一组服务的聚合,服务集群=同分组同应用名多个实例服务聚合,服务权重=加权,权重越大,流量越大
元信息:Nacos数据(如配置和