0%

Nacos简介

Nacos 简介:一站式服务发现与配置管理平台

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的微服务基础设施,集服务注册发现配置管理于一体,旨在简化微服务架构中的服务治理和配置管理流程。作为 Spring Cloud Alibaba 生态的核心组件,Nacos 可无缝替代 Eureka(注册中心)和 Spring Cloud Config(配置中心),提供更高效、更灵活的解决方案。

Nacos 的核心功能

Nacos 的核心价值在于 “一站式” 能力,同时支持两大核心功能:

  1. 服务发现与健康检查
    • 支持基于 DNS 和 HTTP 的服务发现,兼容 Spring Cloud、Dubbo 等主流微服务框架;
    • 内置健康检查机制,自动剔除不健康服务实例,保证服务调用的可靠性。
  2. 动态配置管理
    • 集中管理不同环境、不同服务的配置,支持配置的动态更新(无需重启服务);
    • 支持配置版本控制、灰度发布、配置回滚等高级特性。

Nacos 的显著优势

相比传统组件(如 Eureka、Spring Cloud Config),Nacos 具有以下优势:

优势 说明
AP/CP 模式切换 支持根据业务场景切换一致性模型: - AP 模式(默认):优先保证可用性,适合服务发现; - CP 模式:优先保证一致性,适合配置中心。
一站式解决方案 同时提供服务注册发现和配置管理,减少组件集成成本,简化架构。
动态配置更新 配置修改后实时推送至客户端,无需重启服务,支持多种配置格式(JSON、YAML 等)。
高可用设计 支持集群部署,通过数据分片和副本机制保证高可用,单个节点故障不影响整体服务。
易用性强 提供直观的 Web 控制台,支持服务状态监控、配置编辑等操作,降低运维成本。
生态兼容性 无缝集成 Spring Cloud、Dubbo、Kubernetes 等主流框架,迁移成本低。

Nacos 的安装与启动

1. 下载与编译

Nacos 可通过源码编译或直接下载安装包获取,推荐通过源码编译(确保版本最新):

1
2
3
4
5
6
7
8
# 1. 从Gitee克隆源码(国内速度快)
git clone https://gitee.com/mirrors/Nacos.git

# 2. 进入源码目录
cd Nacos

# 3. 编译源码(跳过测试,加速编译)
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

编译完成后,安装包位于 distribution/target/nacos-server-<版本号>.tar.gz(如nacos-server-2.0.3.tar.gz)。

2. 解压与启动

1
2
3
4
5
6
7
8
9
10
# 1. 解压安装包
tar -xvf nacos-server-2.0.3.tar.gz

# 2. 进入Nacos目录
cd nacos-server-2.0.3/nacos/bin

# 3. 启动Nacos(单机模式,适合开发测试)
sh startup.sh -m standalone # Linux/Mac
# 或 Windows系统
startup.cmd -m standalone
  • 默认端口:8848(可在conf/application.properties中修改);
  • 控制台地址:启动后访问 http://localhost:8848/nacos,默认账号密码均为nacos

3. 集群部署(生产环境)

生产环境需部署 Nacos 集群(至少 3 个节点),步骤如下:

  1. 修改conf/cluster.conf,添加所有节点地址:

    1
    2
    3
    192.168.1.101:8848
    192.168.1.102:8848
    192.168.1.103:8848
  2. 配置数据源(默认使用嵌入式数据库,生产环境建议切换为 MySQL):
    conf/application.properties中配置 MySQL 连接信息:

    1
    2
    3
    4
    5
    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=123456
  3. 启动集群节点:

    1
    sh startup.sh  # 无需指定-standalone,默认集群模式

Nacos 的核心概念

  1. 命名空间(Namespace)
    用于隔离不同环境(如开发、测试、生产)的服务和配置,默认命名空间为public
  2. 服务(Service)
    微服务的抽象表示,通过服务名(如user-service)唯一标识,包含多个服务实例。
  3. 配置集(ConfigSet)
    一组相关的配置项集合,通常对应一个服务的配置文件(如user-service.yaml)。
  4. 配置集 ID(Data ID)
    配置集的唯一标识,格式通常为{服务名}-{环境}.{格式}(如user-service-dev.yaml)。
  5. 分组(Group)
    用于对配置集进行分组管理(如按业务模块分组),默认分组为DEFAULT_GROUP

Nacos 与其他组件的对比

功能 Nacos Eureka Spring Cloud Config
服务注册发现 支持(AP/CP 切换) 支持(AP) 不支持
配置管理 支持(动态更新) 不支持 支持(需结合 Git)
健康检查 内置(HTTP/TCP/ 脚本) 简单(心跳) 不支持
控制台 有(Web 界面) 有(基础) 无(需结合 Spring Admin)
集群部署 支持(简单) 支持(对等节点) 支持(复杂)

结论:Nacos 在功能完整性、易用性和灵活性上均优于传统组件,是微服务架构的优选方案。

总结

Nacos 作为阿里巴巴开源的微服务基础设施,通过整合服务注册发现和配置管理,简化了微服务架构的治理流程。其 AP/CP 模式切换、动态配置更新、高可用集群等特性,使其能够满足不同业务场景的需求。

无论是开发测试环境的快速搭建,还是生产环境的高可用部署,Nacos 都能提供稳定、高效的支持,是 Spring Cloud Alibaba 生态中不可或缺的核心组件

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10