Nacos + Spring Cloud:服务注册与配置中心

发布时间:2026/10/24 8:40:24
Nacos + Spring Cloud:服务注册与配置中心 不同版本不要随意混搭项目已有 Spring Boot 版本时应先查阅 Spring Cloud Alibaba 的版本对应表。示例版本如下组件版本Spring Boot4.0.0Spring Cloud2025.1.0Spring Cloud Alibaba2025.1.0.0Nacos Server3.2.3JDK17 及以上一、启动 Nacos关于Nacos版本的下载安装也有多种方式详细可以参考官网Nacos 概览 | Nacos 官网。推荐使用Docker统一安装管理组件安装过程中如有问题可以评论区留言一起交流学习。本地开发可以用 Docker 下载启动单机版docker run --name nacos-standalone \ -e MODEstandalone \ -e NACOS_AUTH_TOKENVGhpc0lzQVNlY3JldEtleUZvck5hY29zVGhhdElzTG9uZ0Vub3VnaA \ -e NACOS_AUTH_IDENTITY_KEYserverIdentity \ -e NACOS_AUTH_IDENTITY_VALUEsecurity \ -p 8080:8080 \ -p 8848:8848 \ -p 9848:9848 \ -d nacos/nacos-server:v3.2.3启动后访问http://127.0.0.1:8080。首次进入控制台时按页面提示初始化nacos管理员密码。特别注意Nacos会占用8080、8848、9848端口。端口用途8080Nacos 控制台8848客户端与 OpenAPI9848Nacos 客户端 gRPC 通信上面的命令只适合本地验证。生产环境应使用集群、持久化数据库和鉴权并部署在内网不要把 Nacos 直接暴露到公网。二、添加项目依赖在pom.xml中统一管理 Spring Cloud 与 Spring Cloud Alibaba 的版本properties java.version17/java.version spring-cloud.version2025.1.0/spring-cloud.version spring-cloud-alibaba.version2025.1.0.0/spring-cloud-alibaba.version /properties dependencyManagement dependencies dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId version${spring-cloud.version}/version typepom/type scopeimport/scope /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-alibaba-dependencies/artifactId version${spring-cloud-alibaba.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-loadbalancer/artifactId /dependency /dependenciesnacos-discovery负责服务注册与发现nacos-config负责读取配置loadbalancer用服务名调用其他实例。三、配置服务注册与配置中心在application.yml文件中做好配置server:port: 8081spring:application:name: order-serviceconfig:import:- nacos:order-service.yaml?groupDEFAULT_GROUPcloud:nacos:server-addr: ${NACOS_ADDR:127.0.0.1:8848}discovery:group: DEFAULT_GROUPnamespace: ${NACOS_NAMESPACE:}config:namespace: ${NACOS_NAMESPACE:}特别注意容易混淆的名字spring.application.name是注册到 Nacos 的服务名order-service.yaml是配置的 Data IDDEFAULT_GROUP是配置分组。NACOS_NAMESPACE应填写命名空间 ID而不是Nacos控制台中的显示名称。留空表示使用public命名空间。应用入口添加服务发现注解EnableDiscoveryClient SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } }启动应用后在 Nacos 控制台的“服务列表”中应能看到order-service。四、读取并动态刷新配置1、在配置管理-配置列表下新建配置2、通过RefreshScope让Value在配置修改后重新取值RefreshScope RestController public class ConfigController { Value(${app.welcome:default value}) private String welcome; GetMapping(/config) public String config() { return welcome; } }访问 http://localhost:8081/config应返回hello world在控制台把app.welcome改为其他值并发布再次访问接口即可看到新值无需重启应用。五、常见问题1、配置没有加载依次检查 Data ID、Group、Namespace 是否完全一致。加载成功后一般会看到如下信息[Nacos Config] Load config[dataIdpj-test.yaml, groupDEFAULT_GROUP] success2、开启鉴权后连接失败在spring.cloud.nacos下配置正确的username和password并确认客户端能够访问8848、9848端口。如果大家在后续使用过程中遇到什么问题的话欢迎留言交流学习

关于本文作者

来自尧图内容编辑团队

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

尧图内容编辑团队

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

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

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

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

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

网站改版的5个关键决策

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

获取专属建站方案

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

立即免费咨询