Nacos 简介

Nacos(Dynamic Naming and Configuration Service,动态命名与配置服务)是阿里巴巴开源、并已捐给 Apache 基金会的一套平台,把服务发现与配置管理合二为一,常被称作微服务时代的"注册中心 + 配置中心"。

解决什么问题

单体时代,服务地址写死在配置里,配置改动要发版重启。微服务化后实例多、变动频繁,需要一套系统回答两个问题:

  • 服务发现:order-service 有 10 个实例在跑,调用方去哪里找、怎么知道谁挂了?
  • 配置管理:超时时间、开关、规则想动态调整,能不能改完立即生效、还能回滚?

Nacos 是什么

Nacos 的名字取自 Naming(命名)+ Configuration(配置),一套系统同时提供两类能力,并配一个网页控制台统一查看与运维:

能力说明
服务注册与发现服务启动自动注册,调用方按服务名获取健康实例列表
动态配置管理集中管理配置,发布后客户端秒级感知,无需重启
统一控制台网页完成实例上下线、权重调整、配置回滚等操作

五大核心能力

官方把 Nacos 的能力归纳为五点,后续章节都围绕它们展开:

  • 动态服务发现:注册、注销、查询,实例异常时自动摘除
  • 健康检查:临时实例由客户端心跳保活,持久实例由服务端主动探测
  • 动态配置管理:发布配置、监听变更、保留历史版本可回滚
  • 动态 DNS 服务:以 DNS 方式暴露服务,便于异构系统与网关接入
  • 服务元数据管理:服务、集群、实例上可挂键值对,描述版本、机房、灰度标签

使用方式

与 Nacos 打交道有三种入口:

入口使用方典型动作
客户端 SDK业务应用注册实例、订阅服务、拉取并监听配置
OpenAPI脚本、非官方 SDK用 HTTP 调注册/查询/配置接口
网页控制台开发运维人员查看服务、编辑配置、管理命名空间与权限

应用场景

  • 微服务注册中心:Spring Cloud、Dubbo 应用互相发现,配合客户端做负载均衡
  • 配置中心:集中管理开发/测试/生产配置,支持多环境隔离与动态刷新
  • 弹性伸缩:实例随流量增减自动注册与摘除,配合网关、容器编排使用
  • 异构接入:无 SDK 的语言或存量系统,直接走 OpenAPI 或 DNS 方式接入

与 Spring Cloud Alibaba 的关系

Nacos 是 Spring Cloud Alibaba 的核心成员:spring-cloud-starter-alibaba-nacos-discovery 负责注册发现,nacos-config 负责配置管理,配好 server-addr 即可接入,第 13 章会给出完整示例。

版本说明

本教程以 Nacos 2.x 系列为例(该系列部署最广,客户端走 gRPC 长连接,注册与配置能力更完整);3.x 已重构为模块化架构(naming/config 拆分),但服务、配置的核心模型与用法保持一致。

小结

一句话:Nacos 是"服务发现 + 配置管理"一体化平台,帮微服务解决互相找到、动态调参两大问题。接下来从架构与数据模型讲起,逐步深入到安装、使用与集群部署。

笔记加载中…