云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Nacos架构最全详解(图文全面总结)

jxf315 2025-06-28 14:53:57 教程文章 2 ℃

关注mikechen十余年BAT架构经验倾囊相授!

大家好,我是mikechen。


Nacos是大型架构的必备中间件,也是微服务的核心,下面我重点详解Nacos架构@mikechen

文章来源:mikechen.cc

Nacos

Nacos,全程是“Dynamic Naming and Configuration Service”,是Spring Cloud Alibaba核心组件。

Nacos,是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。


Nacos架构

Nacos架构,如下图所示:

+---------------------++-------------------+|NacosConsole|<----->|NacosCluster|+---------------------+|[Naming+Config]||+CoreModule|+--------------++-------------------+|Service A   |<--注册/发现-->NacosServerNode1|Service B   |<--拉取配置-->NacosServerNode2|Service C   |<--心跳上报-->NacosServerNode3+--------------++-------------------+|+----------+|MySQL|(共享存储)+----------+

控制层

这一层是用户与Nacos交互的界面,通常是一个Web控制台,它提供直观的图形化操作界面。

注册的服务实例信息,包括健康状态、IP地址、端口等,以及命名空间、用户权限等管理功能。

配置列表,包括:Data ID、Group、Namespace以及配置内容。

并且, 控制层通过调用Nacos的服务层API,来执行相应的管理操作。


服务层

这是Nacos的核心业务逻辑层,对外提供统一的API接口,处理来自Nacos客户端和控制层的各类请求。

服务层的主要职责包括:

  • 服务注册与发现: 接收服务实例的注册请求,维护服务实例列表,并响应服务查询请求。
  • 配置管理: 处理配置的发布、查询、订阅和更新请求。
  • 元数据管理: 存储和管理服务及配置的各种附加信息。
  • 集群管理: 协调Nacos服务器集群内部的数据同步和状态维护。
  • 认证与授权: 对访问Nacos的客户端和用户进行身份验证和权限控制。

数据层

数据层:是Nacos存储所有服务和配置数据的基础,它负责数据的持久化和一致性保证。

数据层确保了即使Nacos服务器重启或部分节点故障,关键的服务和配置数据也能得到保存和恢复。


Nacos核心模块

Nacos核心模块,如下图所示:

服务注册与发现

主要会包含:

实例注册:通过 REST 接口或 SDK 将服务注册到 Nacos。

服务发现:客户端可通过 Nacos 拉取服务列表,负载均衡调用。

健康检查:服务实例需定期发送心跳,Nacos 会剔除不健康实例。

实例元数据:支持添加 version、env、region 等信息,实现多版本隔离。

配置中心

配置结构:通过 Namespace + Group + DataId 三元组唯一标识配置。

推送机制:基于长轮询(或 gRPC 推送)监听配置变更。

多格式支持:支持 Properties、YAML、JSON、XML 等格式。

动态刷新:支持 Spring Cloud 中的 @RefreshScope@NacosValue 实现自动刷新。

核心功能层

统一配置处理器、服务调度器、推送调度器。

管理服务元数据、缓存与通知机制。

提供任务调度线程池、事件中心与订阅模型。

以上


文章来源:mikechen.cc

最近发表
标签列表