从零跑通:JeecgBoot 微服务与 Nacos 服务注册发现实践

发布时间:2026/9/14 10:24:25

从零跑通:JeecgBoot 微服务与 Nacos 服务注册发现实践 从零跑通JeecgBoot 微服务与 Nacos 服务注册发现实践【免费下载链接】jeecg-boot【低代码v2.0一句话即可生成整个系统】企业级AI低代码平台一键生成前后端代码甚至整个系统。 AI Skills 一句话画流程、设计表单、生成报表、大屏。内置 AI应用平台涵盖AI聊天、知识库、流程编排、MCP插件等兼容主流大模型。引领AI低代码「Skills 生成 → 在线配置 → 代码生成 → 手工合并-AI修改」开发模式解决 Java 项目 90% 重复工作提高效率又不失灵活。项目地址: https://gitcode.com/GitHub_Trending/je/jeecg-boot本文以 JeecgBoot 微服务为切入点实操 Nacos 服务注册与发现、配置中心的配置方法。读完你可以启动整套微服务环境、看懂关键配置项并快速排查注册失败与调用超时。场景切入服务 A 找不到服务 B假设你已把系统服务 jeecg-system 部署到一台机器现在要让 demo 服务调用它。如果直接写 IP 和端口机器扩容、故障转移时这些地址就会失效。JeecgBoot 的做法是调用方只写服务名谁在哪台机器、哪个端口交给 Nacos 回答。这就是服务注册与发现要解决的问题。Nacos 的双重角色注册中心加配置中心在 JeecgBoot 中微服务基于 Spring Cloud Alibaba 技术栈搭建Nacos 承担两件事。一是服务注册中心。每个微服务启动后自动向 Nacos 注册实例停机时自动注销Nacos 通过心跳判断实例健康异常实例会被剔除不再接收流量。它同时管理实例的元数据与权重。二是配置中心。公共配置放在 Nacos 的 jeecg.yaml环境相关配置放在 jeecg-{环境}.yaml改完实时推送到各服务实例支持版本回滚按命名空间隔离多环境。相关模块都在 jeecg-server-cloud/ 目录下jeecg-cloud-gateway 是微服务网关jeecg-cloud-nacos 是 Nacos 服务含默认分组配置文件jeecg-system-cloud-start 和 jeecg-demo-cloud-start 分别是系统服务与示例服务的启动模块jeecg-visual 下是监控与可视化模块。项目支持单体与微服务两种形态按需切换部署即可。一条命令启动微服务环境环境要求 Docker 与 Docker Compose。克隆代码后在仓库根目录执行git clone https://gitcode.com/GitHub_Trending/je/jeecg-boot docker-compose -f jeecg-boot/jeecg-server-cloud/docker-compose.yml up -ddocker-compose.yml 会依次拉起 Nacos、MySQL、Redis、系统服务、demo 服务和网关。compose 里还做了一件值得注意的事网关容器启动前会轮询 Nacos直到 jeecg-system 注册为健康实例才放行避免网关拿到空路由。各服务端口清单组件端口说明Nacos8848控制台 http://localhost:8848/nacos默认账号 nacos/nacos系统服务7001服务名 jeecg-system示例服务7002服务名 jeecg-demo网关9999对外统一入口MySQL3306容器内端口compose 映射到宿主 13306Redis6379微服务内部网络互通默认不映射宿主如果不用 Docker手动启动的步骤是先执行mvn clean install按 Maven profile 构建默认 dev再分别进入 jeecg-system-cloud-start、jeecg-demo-cloud-start、jeecg-cloud-gateway 目录执行mvn spring-boot:run。注意此时 Nacos 地址要指向本机见下一节。最常改的 3 个 Nacos 配置项以 jeecg-system-cloud-start 的 application.yml 为例关键配置如下spring: cloud: nacos: discovery: server-addr: config.server-addr group: config.group namespace: config.namespace config: import: - optional:nacos:jeecg-profile.name.yamlserver-addrNacos 地址。...是 Maven 占位符构建时按 profile 替换。Docker 环境默认值为容器名 jeecg-boot-nacos:8848本机裸跑时需在根 pom 的 profile 里改成 localhost:8848。group 与 namespace配置和注册所属的分组与命名空间默认 DEFAULT_GROUP、命名空间为空public。配置中心找配置、注册中心找实例都靠这两个键定位。config.import声明从 Nacos 拉哪些配置除环境文件外还会导入 jeecg.yaml 公共配置。Nacos 里对应的文件见 jeecg-cloud-nacos/docs/DEFAULT_GROUP/。一次服务间调用的完整链路注册jeecg-system 启动后自动注册到 Nacos服务名 jeecg-system心跳维持健康状态。发现与负载均衡demo 或其他模块通过 Feign 声明式客户端发起调用例如 ISysBaseAPI 上标注FeignClient(value SERVICE_SYSTEM)。Spring Cloud 的 LoadBalancer 根据 Nacos 返回的实例列表挑一台调用方全程只感知服务名。降级Feign 客户端配置了 fallbackFactory如 SysBaseAPIFallbackFactory目标服务不可用时走降级逻辑而不是直接抛错。网关入口前端与外部请求统一打到 9999 端口的 jeecg-gateway。网关从 Nacos 发现各服务路由规则支持动态下发Sentinel 流控、降级规则以 JSON 形式存放在 NacosSENTINEL_GROUP 分组网关启动时拉取鉴权与跨域等统一过滤也在网关完成。排障速查3 个高频问题服务注册失败现象Nacos 控制台看不到实例或启动报连接错误。 原因Nacos 未启动或 server-addr 指向的地址不对。 解决确认 8848 端口可访问核对 Maven profile 与 application.yml 中的地址Docker 与本机部署用的是两个地址。配置不生效现象改了 Nacos 配置服务行为没变化。 原因配置文件的命名空间或分组与服务实际查找位置不一致或 dataId 写错应为 jeecg.yaml、jeecg-{profile}.yaml。 解决在 Nacos 控制台核对文件位置确认无误后重启服务或触发配置刷新。服务调用超时现象Feign 调用偶发或持续超时。 原因目标实例负载高、网络延迟或实例已被剔除后仍在旧缓存里。 解决调整 Feign 超时参数在 Nacos 确认实例健康状态与权重必要时增加实例。要点与下一步回顾本文用 docker-compose 一键拉起 Nacos、系统服务、demo 服务与网关通过 server-addr、group、namespace 三个键定位 Nacos一次 Feign 调用经历注册、发现、负载均衡、降级网关统一负责路由、限流与鉴权。生产环境的下一步为 Nacos 做集群部署避免单点按 dev、test、prod 划分命名空间做环境隔离开启本地配置缓存降低对配置中心的依赖用 jeecg-visual 下的 Sentinel 等模块补齐链路监控。【免费下载链接】jeecg-boot【低代码v2.0一句话即可生成整个系统】企业级AI低代码平台一键生成前后端代码甚至整个系统。 AI Skills 一句话画流程、设计表单、生成报表、大屏。内置 AI应用平台涵盖AI聊天、知识库、流程编排、MCP插件等兼容主流大模型。引领AI低代码「Skills 生成 → 在线配置 → 代码生成 → 手工合并-AI修改」开发模式解决 Java 项目 90% 重复工作提高效率又不失灵活。项目地址: https://gitcode.com/GitHub_Trending/je/jeecg-boot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 10:24:25

2026年GEO工具选型指南:五款AI搜索优化工具深度评测

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

2026/9/14 10:19:24

UNIHIKER便携录音机:Python+Flask嵌入式音频终端设计

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

2026/9/14 11:04:27

Agent Suite办公智能体套件:低代码搭建企业数字员工

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

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/13 11:18:28

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码