官网参考

Nacos 官方文档

一、Nacos 简介

Nacos(发音:/nɑ:kəʊs/)是 Dynamic Naming and Configuration Service 的缩写,作为一款动态服务发现、配置管理和 AI 智能体管理平台,致力于简化微服务及 AI 智能体应用的构建与运维。

通过提供简洁易用的特性集,Nacos 帮助开发者快速实现:

  • 动态服务发现与注册
  • 集中式配置管理与动态更新
  • 服务元数据管理
  • 流量控制与服务治理

作为以 "服务" 为中心的基础设施,Nacos 为微服务架构、云原生架构提供了高效的服务治理解决方案,显著提升系统构建、交付与管理的敏捷性。

二、核心工作原理

Nacos 围绕微服务架构的三大核心问题构建:

  1. 服务注册发现:通过客户端主动注册与服务端心跳检测,实现服务实例的动态感知与管理,支持负载均衡与故障自动剔除。
  2. 配置集中管理:采用 "配置发布 - 订阅" 模式,实现配置的集中存储、版本控制与动态推送,避免配置散落在各服务节点。
  3. 服务健康监测:通过周期性健康检查(心跳检测、接口探测等)实时监控服务状态,确保服务列表的准确性。

其架构设计整合了 "配置管理" 与 "服务发现" 两大核心模块,并通过集群化部署实现高可用,形成从服务注册、配置下发到状态监控的完整服务治理闭环。

三、部署与配置指南

1. 单机模式(非集群)

适用于开发、测试环境或小规模应用场景:

  • 启动配置:修改 bin/startup.cmd(Windows)或 bin/startup.sh(Linux),设置 set MODE="standalone" 启用单机模式。
  • 数据存储:默认使用嵌入式 Derby 数据库,无需额外部署,数据存储于 data/derby-data 目录,重启后数据不丢失。
  • 访问方式:直接通过 127.0.0.1:8848/nacos 或 localhost:8848/nacos 访问控制台(默认账号密码:nacos/nacos)。

2. 集群模式

适用于生产环境,需满足高可用与数据一致性要求:

  • 启动配置:修改启动脚本,设置 set MODE="cluster" 启用集群模式。
  • 数据库依赖:必须部署外部数据库(官方推荐 MySQL 5.6.5+,生产环境建议 5.7 及以上版本):
    1. 执行 conf/nacos-mysql.sql 脚本初始化数据库表结构。
    2. 在 conf/application.properties 中配置数据库连接信息:

      properties

      spring.datasource.platform=mysql
      db.num=1
      db.url.0=jdbc:mysql://mysql-host:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
      db.user.0=用户名
      db.password.0=密码
      
  • 集群配置
    1. 在 conf/cluster.conf 中填写所有节点的局域网 IP: 端口(禁止使用 127.0.0.1 或 localhost),例如:

      plaintext

      192.168.1.100:8848
      192.168.1.100:8858
      192.168.1.100:8868
      
    2. 注意:若节点 IP 动态变化(如无固定局域网 IP),需每次启动前确认 IP 一致性,否则会导致集群通信失败。
  • 端口规划(以 3 节点伪集群为例):
    实例序号 服务端口(server.port) gRPC 通信端口(nacos.core.grpc.server.port)
    1 8848 9848
    2 8858 9858
    3 8868 9868
    (端口需无冲突,且遵循 gRPC 端口 = 服务端口 + 1000 的规则)

3. 通用配置注意事项

  • 客户端配置引入:当客户端通过 config.import: - nacos:test.yaml 引入配置时,需确保 Nacos 配置管理中存在:
    • Data ID 为 test.yaml必须包含文件后缀
    • 配置格式为 YAML(与文件名后缀一致)
  • 服务名规范:建议使用小写字母 + 短横线命名(如 user-service),避免特殊字符导致注册或发现异常。
  • 权限控制:生产环境建议开启控制台认证(nacos.core.auth.enabled=true),并修改默认账号密码。

四、总结

Nacos 作为微服务架构的核心基础设施,通过简化服务注册发现、集中配置管理与服务治理,显著降低了分布式系统的运维复杂度。无论是单机开发还是集群生产环境,遵循其部署规范(如集群模式的 IP 配置、数据库依赖)是确保系统稳定运行的关键。结合官方文档与最佳实践,可充分发挥 Nacos 在动态服务治理中的优势。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐