Nacos 概览
欢迎来到 Nacos 的世界!
什么是Nacos
Nacos /nɑ:kəʊs/
是 Dynamic Naming and Configuration Service
的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。
Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以 “服务” 为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos 支持几乎所有主流类型的 “服务” 的发现、配置和管理:
产品功能
-
服务发现和服务健康监测
Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。
Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。
-
动态配置服务
动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。 配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
Nacos 提供了一个简洁易用的UI (控制台样例 Demo,默认用户名密码为
nacos/nacos@demo
) 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。 -
动态 DNS 服务
动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。
Nacos 提供了一些简单的 DNS APIs TODO 帮助您管理服务的关联域名和可用的
IP:PORT
列表. -
服务及其元数据管理
Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。
-
MCP服务管理和转化
Nacos 能让您快速的将存量的微服务API,通过简单的声明方式,快速实现0代码改动转化成MCP服务; 另外也能使用Spring AI Alibaba,nacos-mcp-wrapper-python及Nacos-MCP-Router进行MCP服务的自动注册及发现,就像使用微服务一样使用MCP服务。 同时能够从MCP服务平台的视角,进行MCP服务相关描述,工具,Prompt等内容的管理,并对MCP服务的版本进行管理。
产品优势
-
易于使用
Nacos经历几万人使用反馈优化,提供统一的服务发现和配置管理功能,通过直观的 Web 界面和简洁的 API,为开发和运维人员在云原生环境中带来了便捷的服务注册、发现和配置更新操作。 面向AI、云原生应用的动态配置管理、服务发现的一站式解决方案,20多种开箱即用的以 AI 服务为中心的架构特性,轻量级易用管控界面, 快速构建AI应用。
-
特性丰富
Nacos提供了包括服务发现、配置管理、动态 DNS 服务、服务元数据管理、流量管理、服务监控、服务治理等在内的一系列特性,帮助您在云原生时代,更轻松的构建、交付和管理微服务。支持 Prompt、MCP、A2A 等 AI Registry 场景。直接支持或稍作扩展即可支持大量有用的互联网、AI应用场景流量调度和服务治理,支持限流、大促销预案和异地多活。
-
极致性能
Nacos经过阿里双十一超快伸缩场景的锤炼,提供高性能的服务注册和发现能力,以及低延迟的配置更新响应,确保在大规模分布式系统中的高效率和稳定运行。
-
超大容量
Nacos诞生自阿里的百万实例规模,造就支持海量服务和配置的管理,能够满足大型分布式系统对高并发和高可用性的需求。
-
稳定可用
脱胎于历经阿里巴巴10年生产验证的内部产品,支持具有数百万服务的大规模场景 具备企业级SLA的开源产品, 千万级别用户使用。 Nacos 通过自研的同步协议,配合生态中应用广泛的Raft协议,确保了服务的高可用性和数据的稳定性,保证阿里双十一系统的高可用稳定运行。
-
开放生态
Nacos拥有活跃的开源社区、广泛的生态整合和持续的创新发展,不仅大量兼容了Spring Cloud、Dubbo等大受欢迎的开源框架、还提供了丰富的插件化能力,帮助用户在云原生时代,提供可定制满足自身特殊需求的独有云原生微服务系统。无缝支持 Kubernetes、Spring Cloud、Spring AI、Dify 在主流公共云上更容易部署和运行 (例如阿里云、华为云、腾讯云、Azure 和 AWS )多租户和多环境支持。
设计理念
我们相信一切都是服务,每个服务节点被构想为一个星球,每个服务都是一个星系。Nacos 致力于帮助建立这些服务之间的连接,助力每个面向星辰的梦想能够透过云层,飞在云上,更好的链接整片星空。
Nacos希望帮助用户在AI时代,在私有云、混合云或者公有云等所有云环境中,更好的构建、交付、管理自己的AI管理平台,更快的复用和组合业务服务,更快的交付商业创新的价值,从而为用户赢得市场。正是基于这一愿景,Nacos的设计理念被定位为易于使用
、面向标准
、高可用
和方便扩展
。
易于使用
易于使用是 Nacos 的一个核心理念,它通过提供用户友好的 Web 界面和简洁的 API 来简化服务的注册、发现和配置管理过程。开发者可以轻松集成 Nacos 到他们的应用中,无需投入大量时间在复杂的设置和学习上。
面向标准
Nacos 采用面向标准的设计理念,遵循云原生应用开发的最佳实践和标准协议,以确保其服务发现和配置管理功能与广泛的技术栈和平台无缝对接。
高可用
为了满足企业级应用对高可用的需求,Nacos 实现了集群模式,确保在节点发生故障时,服务的发现和配置管理功能不会受影响。集群模式也意味着 Nacos 可以通过增加节点来水平扩展,提升系统的整体性能和承载能力。
方便扩展
Nacos 还注重易于扩展,它采用了模块化的设计使得各个组件都可以独立地进行扩展或替换。这也为社区贡献者提供了方便,使他们能够针对特定的需求开发新的功能或者改善现有功能,进一步推动 Nacos 的生态发展。
通过上述设计理念的实现,Nacos 为用户提供了一个强大而灵活的平台,以支持不断变化的业务需求,加速业务创新和数字转型,最终帮助用户在竞争激烈的市场中占据有利地位。
技术架构
Nacos3.0的整体架构以一致性协议,通信模块,其他核心基础功能模块为基座,承载出注册中心、配置中心、AI Registry、协议增强等功能;同时通过各类多语言SDK,桥接各个生态组件。
架构的左右两侧,分别是Nacos的插件以及Nacos的一些拓展组件,他们一起构成了Nacos3.0的整体架构。
数据模型
Nacos 数据模型 由三元组唯一确定, 分别是命名空间(Namespace),分组(Group)和资源名;其中 资源名按照功能模块的不同,可以分为服务名(ServiceName),配置名(DataId)和MCP服务(McpName)
MCP Registry
Nacos 3.0 最主要的能力就是作为MCP Registry,支持了MCP服务的注册,管理,和发现的能力。
Nacos MCP Registry支持三类MCP 服务的注册方式,
第一类是将存量HTTP或RPC的服务,通过声明自动转化为MCP服务,配合Higress的协议转换能力, 实现0代码改造成MCP服务协议,如何将存量API转化为MCP服务,详情可参见存量API转换MCP手册。
第二类就是新构建的MCP服务注册, 配合Spring AI等AI Agent应用框架和Nacos-MCP的sdk,能够做到像微服务一样自动注册到Nacos中进行统一的管理和维护,如何通过Spring AI或Nacos-MCP的sdk进行MCP服务的自动注册与发现,请参见MCP Server自动注册手册。
第三类就是已经构建好的或其他供应商提供的MCP服务,可以导入到Nacos中,进行其描述、工具列表、工具Schema等内容的动态修改和维护,让调试MCP服务变得更加简单。
Nacos MCP Router
Nacos MCP Router是一个基于MCP官方SDK开发的标准MCP Server,为MCP Client提供MCP Server的智能搜索
、安装
、代理
等功能, 极大地简化了MCP服务的使用流程。 同时,Nacos MCP Router跟Nacos MCP Registry结合,可以实现MCP Server治理,如MCP Server及工具可见性、版本管理等。
具体Nacos MCP Router的使用,请参见Nacos MCP Router手册
部署模式
Nacos 提供了两种部署运行模式:单机模式
和集群模式
单机模式
单机模式又称单例模式
, 拥有所有Nacos的功能及特性,具有极易部署、快速启动等优点。但无法与其他节点组成集群,无法在节点或网络故障时提供高可用能力。单机模式同样可以使用内置Derby数据库(默认)和外置数据库进行存储。
单机模式主要适合于工程师于本地搭建或于测试环境中搭建Nacos环境,主要用于开发调试及测试使用;也能够兼顾部分对稳定性和可用性要求不高的业务场景。
集群模式
集群模式通过自研一致性协议Distro以及Raft协议,将多个Nacos节点构建成了高可用的Nacos集群。数据将在集群中各个节点进行同步,保证数据的一致性。集群模式具有高可用、高扩展、高并发等优点,确保在故障发生时不影响业务的运行。集群模式默认采用外置数据库进行存储,但也可以通过内置数据库进行存储。
该模式主要适合于生产环境,也是社区最为推荐的部署模式。
生态组件
路线规划
参与社区
Nacos 主要通过Github 进行社区的协作,欢迎社区中所有的用户和开发者加入到Nacos的开发中来。详情请参考如何共建。