JeecgBoot Nacos 快速上手:微服务注册发现与配置中心完整实践

发布时间:2026/9/14 17:13:50
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服务从 1 个长到 10 个IP 写死在代码里谁来管改一个配置项要发布几轮这套问题在 JeecgBoot 微服务端被 Nacos 一并解决——它基于 Spring Cloud Alibaba 技术栈把注册发现和配置管理收进同一个控制台你只需要照着下面的步骤走一遍。30 秒速览组件、端口与职责先看全貌JeecgBoot 是一个低代码 零代码双模式的 AI 低代码平台微服务部署形态由五个部分组成各自端口和职责如下组件端口职责Nacos注册中心 配置中心8848实例注册/注销、健康检查、配置下发系统服务 jeecg-system7001用户、权限、菜单等核心功能示例服务 jeecg-demo7002演示业务用来验证服务间调用网关 jeecg-gateway9999统一入口、动态路由、限流熔断MySQL / Redis3306 / 6379主数据库与缓存它支持单体与微服务两种部署模式自由切换本文走的是微服务这条线。监控可视化Sentinel、监控、调度等则放在jeecg-visual目录下按需启用。第一步把环境跑起来环境搭好之前先确认你本地有 Docker 和 Maven。下面 Docker 部署是主线手动启动作为备选。Docker 方式只需两条命令Compose 文件里已经定义好了 Nacos、MySQL、Redis、系统服务、示例服务和网关的依赖顺序cd jeecg-boot/jeecg-server-cloud docker-compose up -d手动方式适合你想在 IDE 里打断点调试。先单独把 Nacos 跑起来再逐个启动业务服务cd jeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start mvn spring-boot:run cd jeecg-boot/jeecg-server-cloud/jeecg-cloud-gateway mvn spring-boot:run启动顺序上Compose 里有个细节值得留意网关会先轮询 Nacos等 jeecg-system 注册为健康实例后才拉起避免网关先启动拿到空路由。这个坑它已经帮你绕过了。环境跑起来后下一步要验证的是服务到底有没有注册成功。第二步在控制台亲眼看到服务注册浏览器打开 http://localhost:8848/nacos默认账号密码都是 nacos。进入「服务管理 → 服务列表」你应该能看到 jeecg-system、jeecg-demo 等服务名点进去每个实例都标记为健康实例列里显示着对应端口。背后的机制一句话就能说清客户端定期向 Nacos 发心跳超过阈值没收到心跳就标记不健康再持续异常就会把实例从列表里剔除——所以某个实例挂掉后流量会被自动摘走不需要你手动干预。注册完成只是入口真正的价值在网关怎么把流量分下去。JeecgBoot 的网关路由不是写死在本地 yml 里而是以 JSON 形式存放在 NacosdataId 为 jeecg-gateway-router比如/sys/**转发到lb://jeecg-system/bigscreen/**转发到lb://jeecg-demolb://前缀意味着按服务名走负载均衡。第三步改一份配置看效果现在打开 Nacos 控制台的「配置管理」你会看到 jeecg.yaml、jeecg-dev.yaml、jeecg-gateway.yaml 等配置项完整示例可以对照 docs/DEFAULT_GROUP 配置目录。试两个动作改业务配置编辑 jeecg-dev.yaml加一个自定义配置项保存。客户端监听到变更后实时拉取新值带RefreshScope或动态绑定属性的地方立即生效不用重启——这就是配置中心的实时推送而每次编辑都会生成历史版本点回滚就能退回上一版。改网关路由编辑 jeecg-gateway-router 这份 JSON给 jeecg-demo 的路由加一条 Path保存后网关会动态加载新路由前端请求立刻按新规则转发全程没动过网关进程。服务间内部调用走的是另一条路Feign 声明式客户端。比如系统服务的 ISysBaseAPI.java 接口上用FeignClient标注服务名和fallbackFactory降级工厂调用方只写接口不写 URL底层自动完成负载均衡目标服务异常时降级工厂接管返回兜底结果而不是把错误抛到前端。配置项解读两段 yaml 看懂 Nacos 接入所有服务的 Nacos 接入配置都很短以 system 服务的 application.yml 为例spring: cloud: nacos: discovery: server-addr: config.server-addr group: config.group namespace: config.namespace config: server-addr: ${spring.cloud.nacos.config.server-addr} group: config.group namespace: config.namespaceserver-addr是 Nacos 地址这里的...是 Maven 占位符构建时按环境 profile 替换成真实地址group是分组用于给服务做逻辑归类默认 DEFAULT_GROUPnamespace是命名空间后面讲环境隔离全靠它。config 段的地址直接引用了 discovery 的值改地址只需要改一处。spring: config: import: - optional:classpath:config/application-liteflow.yml - optional:nacos:jeecg.yaml - optional:nacos:jeecg-profile.name.yaml这三行决定启动时配置从哪里读。optional:前缀表示找不到时不报错第一条从本地 classpath 导入 LiteFlow 流程编排配置后两条从 Nacos 拉取前者是各服务共享的公共配置后者按当前激活的 profile 拼出环境专属配置比如 jeecg-dev.yaml。也就是说环境差异不靠改代码只靠激活不同的 profile。从跑通到上生产单机跑通只是起点上线前建议做四件事。命名空间做环境隔离dev、test、prod 各建一个命名空间同一套 Nacos 集群承载三套配置互不干扰配合前面的config.namespace占位符切环境就是切 profile。服务分组与权重按业务域划 group扩容后的新实例如果负载低可以在控制台调低权重让流量平滑切入。权限与告警给 Nacos 开鉴权按命名空间分配读写权限重要配置变更挂上监控告警避免误改。集群部署生产用至少 3 节点 Nacos 集群避免单点故障同时保证配置数据持久化。监控侧jeecg-visual下的 Sentinel 控制台可以实时查看网关的限流熔断指标配合动态路由一起构成完整的流量入口治理。避坑速查三个高频问题的现象和查法整理成表出问题时对号入座现象可能原因解决办法服务注册失败控制台看不到实例Nacos 未启动网络不通server-addr配错确认 Nacos 进程与 8848 端口可访问核对各服务的 server-addr 指向检查防火墙策略改了配置不生效编辑的 dataId 命名空间或分组不对yaml 格式有误客户端未刷新确认当前操作的命名空间和 group 与服务配置一致用 yaml 校验工具检查格式重启服务或查看客户端日志确认监听建立服务间调用超时Feign 超时设置偏小网络延迟目标服务负载过高调大 Feign 的 connect/read 超时排查服务间网络横向增加目标服务实例分摊压力写在最后到这里注册发现、动态配置、网关路由这三件事你都亲手验证过了剩下的就是把它带进真实环境。记住主线命名空间分环境、分组做归类、路由和配置都交给 Nacos 统一管理代码里不留硬编码。想继续深入的话下一步可以去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),仅供参考