
导语整套SCA实战项目完整源码已开源上传至Gitee可直接克隆/下载ZIP使用源码仓库地址https://gitee.com/xiaoyuancode/sca-study-demo本章是整套专栏开篇入门案例基于module-nacos-demo模块手把手实操一次性走完 Nacos 服务注册、远端配置读取、配置动态刷新完整流程跟着操作就能复现全部效果。技术版本JDK 17Spring Boot 3.5.0Spring Cloud Alibaba 2025.0.0.0Nacos 3.0.3高频面试对比Nacos vs Eureka对比维度NacosEurekaCAP架构注册中心AP、配置中心CP双模式仅AP架构优先保证可用性核心能力注册中心配置中心二合一只具备服务注册发现能力数据持久化磁盘持久化重启数据不丢失纯内存存储重启清空注册列表多环境支持NamespaceGroup原生隔离无原生多环境、分组能力灰度流量原生支持权重、灰度发布无内置灰度、负载权重功能生态现状Spring Cloud Alibaba主流持续维护Netflix组件官方早已停止迭代面试小结现在企业微服务基本统一选用 Nacos一个组件搞定注册中心 配置中心实用性拉满Eureka 已经停止维护仅作面试对比了解即可。模块核心功能整合Nacos Discovery自动完成服务注册整合Nacos Config拉取远程yaml配置文件通过ConfigurationProperties绑定配置支持动态刷新本地实测刷新效果修改 Nacos 控制台配置并发布不用重启项目再次请求接口就能拿到最新配置非常适配微服务热更新场景。一、Nacos本地安装启动学习环境适配版本 Nacos 3.0.31. 下载安装包地址https://github.com/alibaba/nacos/releases/download/3.0.3/nacos-server-3.0.3.zip2. 解压后终端进入bin目录单机启动Mac/Linux:cdnacos/binshstartup.sh-mstandaloneWindows CMDcd nacos/bin startup.cmd -m standalone3. 学习环境前置配置必改 conf/application.properties打开 conf/application.properties在末尾添加以下配置nacos.core.auth.enabledfalse nacos.core.auth.plugin.nacos.token.secret.keyU2VjcmV0S2V5MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODk说明enabledfalse 关闭安全认证适合学习环境关闭后server.identity.key/value 配置无效可省略只需保留以上 2 行配置即可正常启动4. 访问控制台地址http://127.0.0.1:8080默认账号密码 nacos/nacos5. 停止服务shshutdown.sh6. 8080端口冲突处理修改 conf/application.properties 更改控制台端口nacos.console.port8090说明启动日志出现 identity.key 相关提示不属于报错关闭鉴权后不影响任何功能。二、项目 Maven 依赖 pom.xml?xml version1.0 encodingUTF-8?projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.xiaoyuancode/groupIdartifactIdsca-study-demo/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdmodule-nacos-demo/artifactIdnamemodule-nacos-demo/namedescriptionNacos服务注册配置中心实战/descriptiondependencies!-- Web基础依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- Nacos服务注册发现 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!-- Nacos配置中心 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency!-- 配置属性绑定处理器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependency/dependencies/project三、项目配置 application.ymlserver:port:8081spring:application:name:nacos-service-democloud:nacos:discovery:server-addr:127.0.0.1:8848# 注册中心地址config:server-addr:127.0.0.1:8848# 配置中心地址config:import:-nacos:${spring.application.name}.yaml四、核心 Java 代码1. 启动类 NacosApplication.javapackagecom.xiaoyuancode.sca.nacos;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplicationEnableDiscoveryClientpublicclassNacosApplication{publicstaticvoidmain(String[]args){SpringApplication.run(NacosApplication.class,args);}}2. 配置绑定实体 DemoConfig.javapackagecom.xiaoyuancode.sca.nacos.config;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.context.annotation.Configuration;ConfigurationConfigurationProperties(prefixdemo)publicclassDemoConfig{privateStringname;privateStringversion;privateStringdesc;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicStringgetVersion(){returnversion;}publicvoidsetVersion(Stringversion){this.versionversion;}publicStringgetDesc(){returndesc;}publicvoidsetDesc(Stringdesc){this.descdesc;}}3. 测试接口控制器 NacosTestController.javapackagecom.xiaoyuancode.sca.nacos.controller;importcom.xiaoyuancode.sca.nacos.config.DemoConfig;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;RestControllerRequestMapping(/sca/nacos)publicclassNacosTestController{AutowiredprivateDemoConfigdemoConfig;Value(${spring.application.name})privateStringapplicationName;GetMapping(/register)publicStringtestRegister(){return服务注册Nacos成功服务名applicationName;}GetMapping(/config)publicStringtestConfig(){System.out.println(demo.name: demoConfig.getName());System.out.println(demo.version: demoConfig.getVersion());System.out.println(demo.desc: demoConfig.getDesc());returndemoConfig.getName() | demoConfig.getVersion() | demoConfig.getDesc();}}五、本地启动步骤1. 启动 Nacos控制台新建 Data Idnacos-service-demo.yamldemo:name:测试服务version:1.0.0desc:Nacos配置中心测试2. IDE运行 NacosApplication 启动项目启动成功后打开 Nacos 控制台[服务管理 - 服务列表]能查到nacos-service-demo代表服务注册成功。六、接口测试Windows10/Win11自带curl直接复制命令执行Win7老旧系统直接浏览器粘贴地址即可。# 验证服务注册功能curlhttp://localhost:8081/sca/nacos/register# 读取Nacos远端配置curlhttp://localhost:8081/sca/nacos/config七、实操踩坑总结SpringBoot3 不会自动补全配置文件后缀Nacos 的 Data Id 必须完整写xxx.yaml否则读取不到配置后续要被 OpenFeign 远程调用的服务不能省略spring.cloud.nacos.discovery注册配置ConfigurationProperties绑定前缀必须和 Nacos 配置顶层 key 完全一致否则字段注入为 null小结本章完整走完 Nacos 本地部署、项目整合全流程落地服务注册、远程配置、动态刷新三大核心能力同时梳理面试高频的 Nacos 与 Eureka 核心差异。下一章预告Spring Cloud Alibaba实战02Nacos 多环境隔离企业级 Profile Namespace Group 三维隔离作者简介刘晓媛 XiaoYuanCode资深全栈开发具备丰富前后端一体化业务系统落地经验。现阶段主攻 Java 微服务与 Spring AI分享个人学习复盘与 RAG 工程化落地方案所有案例均本地验证配套代码可直接复用。