Spring Cloud + Nacos 使用
文章目录Spring Cloud Nacos 使用一、依赖版本二、微服务跨主机调用2.1 配置 RestTemplate2.2 跨机器调用2.3 缺点三、Nacos 作为注册中心3.1 什么是注册中心3.2 首次下载需要配置3.3 Nacos 操控代码3.3.1 引入依赖(双方)3.3.2 yml 配置(双方)3.3.3 服务端注册3.3.4 客户端注册3.3.5 客户端调用3.3.6 进入控制台四、负载均衡与权重4.1 引入依赖4.2 yml4.3 代码五、同集群优先访问5.1 yml5.2 效果六、临时与非临时实例6.1 yml6.2 注意七、环境隔离7.1 在 Nacos 控制台创建命名空间7.2 yml九、演进总结Spring Cloud Nacos 使用一、依赖版本组件版本说明Java21Spring Boot4.1.0父 POM 统一管理Spring Cloud2025.1.2spring-cloud-dependenciesSpring Cloud Alibaba2025.1.0.0spring-cloud-alibaba-dependenciesMyBatis Spring Boot Starter4.1.0MySQL Connector/J8.0.33父 POM 版本锁定propertiesjava.version21/java.versionspring-cloud.version2025.1.2/spring-cloud.versionspring-cloud-alibaba.version2025.1.0.0/spring-cloud-alibaba.versionmybatis.version4.1.0/mybatis.versionmysql.version8.0.33/mysql.version/properties二、微服务跨主机调用RestTemplate 封装了 HTTP 请求Spring 会自动把返回的 JSON 反序列化成 Java 对象。2.1 配置 RestTemplateConfigurationpublicclassRestTemplateConfig{BeanpublicRestTemplaterestTemplate(){returnnewRestTemplate();}}2.2 跨机器调用product-service 部署在另一台机器IP 为X端口8081提供接口返回ProductDO的 JSON。order-service 远程调用Stringurlhttp://X:8081/product/getProductById?idid;ProductDOproductInforestTemplate.getForObject(url,ProductDO.class);2.3 缺点缺点说明URL 写死IP / 端口变更调用方代码或配置必须跟着改无法多实例product 扩容多个端口调用方要自己维护 IP:Port 列表无故障转移某台机器挂了调用方不会自动切换无负载均衡请求无法自动分散到多个实例三、Nacos 作为注册中心3.1 什么是注册中心类似于公告栏提供服务端可用的 IP 和端口号客户端通过服务名查找而不是写死 IP。解决了 URL 写死不易更改、服务端宕机 / 更换地址等问题。Nacos 下载网址https://nacos.io/3.2 首次下载需要配置进入\nacos\conf\application.propertiesnacos.server.main.port8848(修改端口号可选)nacos.ai.registry.port9948(Nacos提供网页版控制台,通过这个端口在浏览器进入控制台)nacos.core.auth.plugin.nacos.token.secret.key(添加一个Base6432字节的字符串)nacos.core.auth.server.identity.key(设置key任意字符串都可)nacos.core.auth.server.identity.value(设置value任意字符串都可)如果是 Windows 单机模拟进入\nacos\bin\startup.cmd约 26 行设置为单机然后双击startup.cmd启动set MODEstandalone如果是 Linux 环境解压缩 zip配置\nacos\conf\application.properties启动sh startup.sh -m standalone单机/sh startup.sh -m cluster集群3.3 Nacos 操控代码3.3.1 引入依赖(双方)dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency3.3.2 yml 配置(双方)spring:cloud:nacos:discovery:server-addr:127.0.0.1:8848#指向同一个 NacosNacos部署在哪里,就写哪个IP3.3.3 服务端注册在启动类加入EnableDiscoveryClientimportorg.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplicationEnableDiscoveryClientpublicclassProductSpringBootApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ProductSpringBootApplication.class,args);}}启动后Nacos 控制台可看到product-service实例。3.3.4 客户端注册启动类加入EnableDiscoveryClientimportorg.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplicationEnableDiscoveryClientpublicclassOrderSpringBootApplication{publicstaticvoidmain(String[]args){SpringApplication.run(OrderSpringBootApplication.class,args);}}3.3.5 客户端调用配置RestClientConfigurationpublicclassRestClientConfig{BeanRestClient.BuilderrestClientBuilder(){returnRestClient.builder();}}通过服务名调用服务名即 yml 中的spring.application.nameProductDOproductrestClientBuilder.build().get().uri(http://product-service/product/getProductById?idorder.getProductId()).retrieve().body(ProductDO.class);多个 product 实例提供相同服务时spring.application.name必须一致都是product-service。3.3.6 进入控制台浏览器访问 Nacos 控制台注意nacos.ai.registry.port默认8080才是控制台端口不是 8848。四、负载均衡与权重Nacos 负责「有哪些实例」选哪个实例由 Spring Cloud LoadBalancer 完成。4.1 引入依赖order-servicedependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependency4.2 yml客户端配置spring:cloud:loadbalancer:nacos:enabled:true# 启用 Nacos 权重策略默认仅轮询在注册中心 服务管理-服务列表-详情-编辑配置各个服务端权重4.3 代码LoadBalanced注解实现负载均衡ConfigurationpublicclassRestClientConfig{LoadBalancedBeanRestClient.BuilderrestClientBuilder(){returnRestClient.builder();}}ProductDOproductrestClientBuilder.build().get().uri(http://product-service/product/getProductById?idproductId).retrieve().body(ProductDO.class);五、同集群优先访问即同机房优先访问优先调用同集群实例同集群故障再访问不同集群5.1 ymlorder-service调用方上海机房spring:cloud:nacos:discovery:cluster-name:shanghaiproduct-service 8081上海spring:cloud:nacos:discovery:cluster-name:shanghaiproduct-service 8082 / 8083北京spring:cloud:nacos:discovery:cluster-name:beijing5.2 效果六、临时与非临时实例类型ephemeral健康检查下线行为临时实例true默认提供服务的那方向Nacos发送心跳超时自动剔除非临时实例false互相发送心跳标记不健康不立即删除临时服务断联后注册中心直接剔除实例非临时注册中心主动向服务端发探测断联后先标记不健康再移除6.1 yml所有相同name服务端的临时与非临时都必须统一,默认为临时spring:cloud:nacos:discovery:ephemeral:false6.2 注意更改请进入\nacos\data\protocol删去raft文件夹,这个文件记录了之前是否为临时服务端七、环境隔离通过 Nacos命名空间namespace隔离 dev / prod 环境不同环境的服务互相不可见。dev的只能看见注册中心dev环境下可用的服务端.7.1 在 Nacos 控制台创建命名空间命名空间-新建命名空间7.2 ymlapplication-dev.ymlorder / product 均需spring:cloud:nacos:discovery:namespace:14976256-c71e-4138-b0b1-6aa2644ef289application-prod.ymlspring:cloud:nacos:discovery:namespace:9e9d7903-a714-4bd6-ba21-4daeb0a31fdcapplication.yml 激活 profilespring:profiles:active:dev九、演进总结

相关新闻

现代C++包管理器Conan实战指南:从依赖管理到私有包发布

现代C++包管理器Conan实战指南:从依赖管理到私有包发布

1. 从零开始:为什么你需要一个现代的C包管理器? 如果你是一个C开发者,并且经历过手动下载第三方库、配置头文件路径、链接库文件、处理不同平台和编译器的依赖关系,那么你肯定对“依赖地狱”这个词深有体会。一个项目依赖Boost、…

2026/10/13 20:09:19 阅读更多 →
Windows代码签名证书免费获取与实战指南:从原理到应用

Windows代码签名证书免费获取与实战指南:从原理到应用

1. 为什么我们需要代码签名证书? 如果你在Windows上开发过软件,尤其是那些需要分发给用户安装的EXE、DLL、MSI或者驱动文件,那你大概率遇到过这个让人头疼的弹窗:“Windows 已保护你的电脑”。微软 SmartScreen 筛选器会拦截未签…

2026/10/10 18:11:57 阅读更多 →
【RT-DETR涨点改进】ICCV 2025 | 独家创新首发、Conv卷积改进篇 | 引入轻量MKIR多核卷积倒残差模块,捕获细粒度细节与广域上下文信息,适合目标检测、医学图像分割任务有效涨点

【RT-DETR涨点改进】ICCV 2025 | 独家创新首发、Conv卷积改进篇 | 引入轻量MKIR多核卷积倒残差模块,捕获细粒度细节与广域上下文信息,适合目标检测、医学图像分割任务有效涨点

一、本文介绍 🔥本文给大家介绍使用MKIR模块改进RT-DETR模型,能够显著提升特征提取的多样性和多尺度表达能力,同时大幅减少模型参数和计算量,使检测模型更加轻量、高效,适合在实时和边缘设备上部署。相比传统卷积模块,MKIR能更好地适应各种目标尺寸和复杂场景,提升小目…

2026/10/13 3:25:52 阅读更多 →

最新新闻

PS5串流实战指南:从局域网到外网的远程游戏配置与延迟优化

PS5串流实战指南:从局域网到外网的远程游戏配置与延迟优化

直接接PS5玩家一个很现实的问题:这台机器买回来之后,是不是基本就长在客厅电视柜上了?客厅被占、卧室想玩、出差想刷两把,每次都只能乖乖回到电视前。我捣鼓AnyPS5这套串流方案,就是为了把这台主机从HDMI线的长度里解放…

2026/10/13 20:09:06 阅读更多 →
若依vue3前端页面框架:路由联动、权限指令与缓存机制解析

若依vue3前端页面框架:路由联动、权限指令与缓存机制解析

简介:若依vue3前端页面框架是一套基于Vue3与Element Plus的开源后台管理前端解决方案,面向需要快速搭建企业级系统的开发团队及初中级前端工程师,适用于中后台管理系统、权限控制界面、数据看板等典型场景。压缩包共299个文件、约3MB&#xf…

2026/10/13 20:09:06 阅读更多 →
嵌入式视觉系统中MT9M001C到LCD的端到端时序设计

嵌入式视觉系统中MT9M001C到LCD的端到端时序设计

简介:本资源是面向FPGA初学者与嵌入式图像处理学习者的实战项目,聚焦于MT9M001 CMOS图像传感器的驱动与实时显示实现,适用于基于Altera/Intel FPGA平台的开发板验证与课程实验。项目完整呈现了从传感器数据采集、FPGA逻辑控制(含时…

2026/10/13 20:09:06 阅读更多 →
PS5全机型优化指南:从版本识别、M.2扩展到HDMI 2.1设置与故障排查

PS5全机型优化指南:从版本识别、M.2扩展到HDMI 2.1设置与故障排查

如果你手头有一台 PS5,或者正打算入手,不管是初版、轻薄版还是 Pro 版,这篇文章都是给你准备的。我写这个东西的起因很简单:群里隔三差五就有人问"我这个 PS5 为什么风扇声音这么大""到底要不要上 Pro""…

2026/10/13 20:09:06 阅读更多 →
STM32跑马灯实验详解:从时钟配置到GPIO驱动与工程下载

STM32跑马灯实验详解:从时钟配置到GPIO驱动与工程下载

简介:这份资源是面向嵌入式初学者与STM32入门者的跑马灯实验例程包,围绕GPIO输出控制这一核心知识点,帮助读者快速上手STM32微控制器的基本开发流程。资源以ALIENTEK MINISTM32开发板为硬件平台,配套完整工程代码与详细注释&#…

2026/10/13 20:09:06 阅读更多 →
Steinberg VST插件开发包入门:从零构建VST3音频插件

Steinberg VST插件开发包入门:从零构建VST3音频插件

简介:Steinberg VST插件开发包(VST3 SDK 3.5版)面向音频插件开发者、音乐软件工程师及数字音频工作站扩展爱好者,提供创建虚拟乐器与音频效果处理器所需的完整开发环境。包内共5764个文件,以html文档、png界面素材、h头…

2026/10/13 20:08:06 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →