SpringCloud微服务练手:Nacos 服务注册发现与配置中心(SpringBoot 2.7 + SpringCloudAlibaba)

发布时间:2026/10/10 6:21:35
SpringCloud微服务练手:Nacos 服务注册发现与配置中心(SpringBoot 2.7 + SpringCloudAlibaba) SpringCloud微服务练手分步骤学习Nacos服务注册与配置中心本文按编程操作步骤来写先引入依赖再写配置再给启动类加注解。跟着步骤敲就能把 Nacos 的服务注册与配置中心跑通。第0步 环境准备JDK 8 / Maven 3.6 / IDEASpring Boot 2.7.15Spring Cloud 2021.0.5Spring Cloud Alibaba 2021.0.1.0Nacos 服务端 2.2.x单机部署在 192.168.150.101:8848项目结构父工程统一管理版本feign-demo-parent # 父工程pom ├── nacos-common # 公共模块实体 Feign接口 ├── feign-provider # 服务提供者注册Nacos 配置中心 └── feign-consumer # 服务消费者Feign远程调用第一步 父工程引入依赖统一管理版本父工程是 pom 工程用 dependencyManagement 锁定版本子模块不用再写版本号。dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.7.15/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2021.0.1.0/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion2021.0.5/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement说明三个 BOM 一个都不能少尤其 spring-cloud-dependencies否则 openfeign、loadbalancer 版本会解析成 unknown 报错。第二步 公共模块 nacos-common实体 Feign接口公共模块放实体类和 Feign 接口provider 和 consumer 都引用它。实体类 UserDatapublicclassUser{privateLongid;privateStringname;privateStringmsg;}Feign 接口 UserFeignApiname 必须和 provider 的 application.name 完全一致FeignClient(namenacos-provider)publicinterfaceUserFeignApi{GetMapping(/user/{id})UsergetUser(PathVariable(id)Longid);}第三步 服务提供者 feign-provider作用把自己注册到 Nacos服务注册发现并从 Nacos 配置中心读配置。3.1 引入依赖dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdcom.demo/groupIdartifactIdnacos-common/artifactIdversion0.0.1/version/dependency/dependencies3.2 写配置文件bootstrap.yml服务名 Nacos 地址 配置中心 shared-configsspring:application:name:nacos-providercloud:nacos:discovery:server-addr:192.168.150.101:8848config:server-addr:192.168.150.101:8848file-extension:yamlshared-configs:-data-id:nacos-provider.yamlgroup:DEFAULT_GROUPrefresh:trueapplication.yml本地端口server:port:80813.3 启动类加注解SpringBootApplicationEnableDiscoveryClient// 开启服务注册发现publicclassProviderApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ProviderApplication.class,args);}}3.4 写 Controller读配置 支持热更新RestControllerRefreshScope// 支持 Nacos 配置热更新publicclassUserController{Value(${demo.msg:默认消息})privateStringmsg;GetMapping(/user/{id})publicUsergetUser(PathVariableLongid){UserusernewUser();user.setId(id);user.setName(provider返回用户);user.setMsg(msg);returnuser;}}第四步 服务消费者 feign-consumer作用通过 Feign 远程调用 provider实现服务间通信。4.1 引入依赖openfeign loadbalancer nacos-discovery commondependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.demo/groupIdartifactIdnacos-common/artifactIdversion0.0.1/version/dependency4.2 启动类加注解SpringBootApplicationEnableDiscoveryClientEnableFeignClients(basePackages{com.demo.common.feign,com.demo.feignconsumer.feign})publicclassConsumerApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ConsumerApplication.class,args);}}4.3 写 Controller注入 Feign 接口RestControllerpublicclassConsumerController{ResourceprivateUserFeignApiuserFeignApi;GetMapping(/getUser/{id})publicUsergetUser(PathVariableLongid){returnuserFeignApi.getUser(id);// Feign 远程调用 provider}}第五步 测试验证先启动 Nacos 服务端192.168.150.101:8848单机模式启动 feign-provider到 Nacos 控制台【服务管理-服务列表】确认 nacos-provider 已注册启动 feign-consumer浏览器访问 http://localhost:8082/getUser/1返回 provider 的数据msg 取自配置中心说明服务注册 配置中心都打通修改 Nacos 后台 demo.msg 并发布不重启服务msg 自动变化验证热更新第六步 踩坑记录坑1loadbalancer / openfeign 报 unknown - 父pom缺 spring-cloud-dependencies BOM坑2serviceName is blank - SpringBoot2.4 没加 spring-cloud-starter-bootstrapbootstrap.yml 没加载坑3注入 UserFeignApi 找不到 Bean - EnableFeignClients 没扫到公共模块的 feign 包要指定 basePackages坑4配置中心读不到值 - shared-configs 需 bootstrap 或 spring.config.import 激活总结按引入依赖 - 写配置 - 启动类加注解 - 写接口的步骤就能把 Nacos 的两大能力服务注册发现 配置中心跑通。版本匹配和 SpringBoot2.4 的 bootstrap 机制变化是最容易踩坑的地方。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询