跳到主要内容
📖 本章预览

本章为预览版本,展示部分核心内容。完整内容包含详细源码解析、实战代码和面试要点,加入知识星球即可解锁全部章节。

第二章:工程全景 — 源码模块拆解

2.1 多模块结构总览

nacos/
├── api/ # 公共 API 层:Request/Response 定义、proto 文件、SPI 接口
├── client/ # 客户端 SDK:服务注册发现、配置监听、gRPC 通信、本地缓存
├── client-basic/ # 客户端基础能力:鉴权、加密、身份识别
├── naming/ # 服务端 Naming 模块:服务注册发现、健康检查、推送
├── config/ # 服务端 Config 模块:配置管理、长轮询、Dump 同步
├── core/ # 核心基础设施:gRPC 通信层、集群管理、一致性协议实现
├── consistency/ # 一致性协议抽象层:AP/CP 接口定义(纯接口,无实现)
├── auth/ # 鉴权插件:Token 机制、权限模型
├── address/ # 集群寻址:地址服务器模式
├── cmdb/ # CMDB 插件:实例元数据扩展
├── ai/ # AI 能力扩展
└── bootstrap/ # 启动入口:Spring Boot Application

2.2 模块依赖关系深度解析

                    ┌─────────────┐
│ bootstrap │ ← Spring Boot 启动入口
└──────┬──────┘
│ 依赖
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ naming │ │ config │ │ auth │ ← 业务模块(平级,互不依赖)
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
└────────────┼────────────┘

┌──────────┐
│ core │ ← 核心基础设施
└────┬─────┘

┌──────────┼──────────┐
▼ ▼ ▼
┌───────────┐ ┌─────┐ ┌─────────┐
│consistency│ │ api │ │ common │ ← 底层抽象
└───────────┘ └─────┘ └─────────┘

关键设计原则

  • namingconfig 是平级业务模块,互不依赖,可以独立部署
  • 两者共享 core 提供的基础设施(通信、集群、一致性协议)
  • consistency 模块只定义接口APProtocolCPProtocol),具体实现在 core.distributed
  • 这种分层使得一致性协议的实现可以替换,而不影响上层业务

2.3 core 模块 — 基础设施详解

core 是整个 Nacos 服务端的"地基",理解它的子包结构至关重要:

core/
├── remote/ # gRPC 通信层
│ ├── ConnectionManager # 连接池管理(注册、注销、保活)
│ ├── RequestHandlerRegistry # 请求处理器自动注册
│ ├── RequestFilters # 请求过滤链(鉴权、限流)
│ ├── RpcPushService # 服务端主动推送
│ └── grpc/ # gRPC Server 实现

├── cluster/ # 集群成员管理
│ ├── ServerMemberManager # 成员管理器(核心)
│ ├── MemberLookup # 寻址策略接口
│ └── lookup/ # 寻址实现(文件、地址服务器等)

├── distributed/ # 一致性协议实现
│ ├── distro/ # AP 协议:Distro
│ ├── raft/ # CP 协议:JRaft
│ └── ProtocolManager # 协议统一调度

├── control/ # 限流控制
│ └── TpsControl # TPS 限流注解 + 拦截

├── auth/ # 鉴权过滤器
│ ├── AuthFilter # HTTP 鉴权
│ └── RemoteRequestAuthFilter # gRPC 鉴权

└── namespace/ # 命名空间管理

🔒 解锁完整内容

本章剩余内容需要解锁后查看

以上仅为本章部分预览内容,完整内容包含更多深度源码解析、实战代码和面试要点。

加入知识星球你将获得:

  • ✅ 全部 17 章完整内容 + 持续更新
  • ✅ 配套源码 + 实战项目
  • ✅ 一对一答疑 + 面试辅导
  • ✅ 简历优化 + 内推机会

📚 本章完整目录

以下为本章完整目录结构,加入知识星球即可解锁全部内容。

2.4 bootstrap 启动流程源码分析

2.5 SPI 扩展机制 — 可插拔架构的基石

2.6 面试热点