Nacos服务注册发现配置实战:新手入门完整指南

为什么你需要搞懂Nacos服务注册发现配置

微服务架构下,各个服务需要相互通信,但IP和端口经常变化。
Nacos 就是用来解决这个问题的——它提供一个中心化的“电话簿”,服务启动时自动注册进去,其他服务通过名字就能找到它。
今天这篇教程会带你从零完成 Nacos服务注册发现配置,让你亲手跑通一个能用的小例子。

开始前先准备好这几样东西

  • JDK 1.8 或更高:Nacos 依赖 Java 环境。去 Oracle 官网 下载安装,配置好 JAVA_HOME 环境变量。安装完成后在终端执行 java -version 检查版本。
  • MySQL 5.7+:Nacos 默认使用内嵌数据库,但生产环境推荐用 MySQL。新建一个数据库,比如 nacos_config,然后执行 Nacos 安装包里的 conf/nacos-mysql.sql 建表。
  • Nacos 服务端:到 GitHub Releases 下载最新稳定版压缩包(如 nacos-server-2.2.3.tar.gz)。解压到服务器上的目录,比如 /usr/local/nacos
小提醒:如果你的服务器内存不足 1GB,启动 Nacos 前需要调整 JVM 参数,后面避坑部分会讲。

一步一步修改配置文件,让Nacos用上MySQL

Nacos 默认连接内嵌 Derby 数据库,不支持持久化。
我们要改成 MySQL,这样才能在重启后保留服务注册信息。

1. 修改 application.properties

进入 Nacos conf 目录,找到 application.properties 文件,打开后找到以下配置区域,取消注释并修改:

# 启用 MySQL 数据源
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=你的数据库用户名
db.password=你的数据库密码

如果用的是 MySQL 8.0+,别忘了在 db.url.0 里加上 &allowPublicKeyRetrieval=true

2. 修改 cluster.conf (仅单机模式可跳过)

如果你部署的不是集群,保持单机模式即可。
单机模式下此文件不需要动。

3. 启动 Nacos

回到 Nacos 的 bin 目录,执行启动命令(Linux/Mac):

sh startup.sh -m standalone

Windows 用 startup.cmd -m standalone
看到控制台输出 Nacos started successfully 就说明启动成功了。

让一个Spring Boot服务成功注册到Nacos

这里我们拿一个简单的 Spring Boot 项目做演示,项目名为 service-demo

1. 添加 Nacos 服务发现依赖

pom.xml 里加入:


    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery

同时确保 spring-cloud-alibaba 版本与 Spring Boot 版本兼容,建议对照 官方版本说明 选择。

2. 配置 bootstrap.yml

src/main/resources 下创建 bootstrap.yml,配置 Nacos 地址和服务名:

spring:
  application:
    name: service-demo
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

3. 启动应用并检查注册结果

运行 Spring Boot 应用的主类。
控制台会出现类似 Registering service... succeeded 的日志。
此时打开浏览器访问 http://localhost:8848/nacos,默认用户名密码都是 nacos,进入“服务管理”页面,你应该能看到 service-demo 出现在服务列表里,状态为“健康”。

踩坑经验:这些细节不注意容易卡住半天

  • 端口被占用:Nacos 默认端口 8848,如果冲突,在 application.properties 里修改 server.port=8849
  • MySQL 连接报错:常见原因有数据库没建表、密码错误、时区不对。检查 nacos_config 中是否已有数据表(至少几十张)。
  • 服务注册不上:检查 spring.application.name 是否设置,bootstrap.yml 是否被读取(优先于 application.yml)。如果用了 @EnableDiscoveryClient 注解,确保它在启动类上。
  • 内存不足导致启动失败:编辑 startup.sh 中的 JAVA_OPT,把 -Xms2g -Xmx2g 改小,比如 -Xms512m -Xmx512m
  • 命名空间混淆:默认命名空间为 public,如果你的服务注册到了其他命名空间,登录时注意切换到对应空间查看。

三步验证你的Nacos服务注册发现配置是否成功

  1. 看日志:无论是 Nacos 还是你的 Spring Boot 应用,日志里都没有 ERROR 级异常,且出现“Registering service”成功提示。
  2. 看控制台:Nacos 管理界面“服务列表”里你的服务名出现,并显示“健康实例数”大于 0。
  3. 模拟调用:如果你有另一个服务(比如 service-consumer),可以通过 @LoadBalanced RestTemplatehttp://service-demo/api/test 方式调用,能获取到正确响应说明注册发现全部正常。

最后说两句

到这里你已经完成了完整的 Nacos服务注册发现配置
实际生产环境中还会涉及集群部署、权限控制和持久化调优,但今天这套基础流程是后续所有操作的地基。
建议你先在本地或测试机完整跑一遍,遇到问题优先回头看“踩坑经验”部分。
记住:任何高可用架构都是从一次成功的注册开始的。

分享到:
上一篇
haproxy负载均衡集群搭建:Haproxy负载均衡集群搭
下一篇
SkyWalking链路追踪部署
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意