ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

JeecgBoot Nacos 完整实战指南:5分钟跑通微服务环境,搞懂每个配置去哪改

JeecgBoot Nacos 完整实战指南:5分钟跑通微服务环境,搞懂每个配置去哪改 JeecgBoot Nacos 完整实战指南5分钟跑通微服务环境搞懂每个配置去哪改【免费下载链接】jeecg-boot【低代码v2.0一句话即可生成整个系统】企业级AI低代码平台一键生成前后端代码甚至整个系统。 AI Skills 一句话画流程、设计表单、生成报表、大屏。内置 AI应用平台涵盖AI聊天、知识库、流程编排、MCP插件等兼容主流大模型。引领AI低代码「Skills 生成 → 在线配置 → 代码生成 → 手工合并-AI修改」开发模式解决 Java 项目 90% 重复工作提高效率又不失灵活。项目地址: https://gitcode.com/GitHub_Trending/je/jeecg-boot你的 JeecgBoot 项目要拆服务了jeecg-system 和 jeecg-demo 拆成两个进程部署到不同机器马上会撞上三个问题——前端请求到底打哪个地址两个服务之间怎么互相找到对方数据库连接这种几十个配置项总不能每个服务里抄一份吧JeecgBoot 用 Nacos 一次性解决这三件事它既是注册中心服务启动时把自己挂号别人按服务名找它又是配置中心公共配置集中存放、统一修改。下面先花五分钟把环境跑起来再逐个拆清楚每个配置住在哪里。 先看到效果5分钟跑通最小环境仓库里有一键脚本 start-docker-compose-cloud.shWindows 用同目录的 .bat它会做四件事装依赖检查、配置 hosts、mvn clean install -Pdev,SpringCloud编译后端、pnpm 构建前端最后用 docker-compose-cloud.yml 拉起全部容器git clone https://gitcode.com/GitHub_Trending/je/jeecg-boot cd jeecg-boot bash start-docker-compose-cloud.sh不想用脚本也可以手动来cd jeecg-boot/jeecg-server-cloud docker-compose up -d这份 compose 会按依赖顺序启动MySQL 和 Redis → Nacos → jeecg-system、jeecg-demo → 网关。各端口先记下来组件端口说明Nacos8848控制台在 http://localhost:8848/nacos默认账号 nacos/nacos网关 jeecg-gateway9999对外唯一入口前端都打这里jeecg-system7001系统服务端口不对外暴露jeecg-demo7002示例服务端口不对外暴露MySQL13306 → 3306初始化脚本在 jeecg-boot/db 下等一两分钟后打开 Nacos 控制台服务管理 → 服务列表里应该能看到 jeecg-system、jeecg-demo、jeecg-gateway 三个服务各有一个健康实例——这就是注册完成的证据。demo 服务跑起来的大屏效果长这样 原理拆解这套东西为什么这么设计你只需要理解三件事其余都是它们的推论。1. 注册中心解决找谁。每个微服务启动时向 Nacos 上报我叫 jeecg-system在 7001 端口实例掉了就自动摘除。网关配置里开了discovery.locator.enabled: true见 jeecg-cloud-gateway 的 application.yml意思是按服务名就能自动路由新增一个服务甚至不用改网关配置。2. 配置中心解决配置放哪。服务本地只留最小配置公共配置放进 Nacos。jeecg-system-cloud-start的 application.yml 里这段 import 就是去哪取配置的清单spring: config: import: - optional:classpath:config/application-liteflow.yml - optional:nacos:jeecg.yaml - optional:nacos:jeecg-profile.name.yamljeecg.yaml是所有服务共享的配置jeecg-dev.yaml是 dev 环境专属数据库、Redis 地址都在这里面仓库里 docs/DEFAULT_GROUP/jeecg-dev.yaml 就是它的样例。仓库自带的 jeecg-cloud-nacos 模块只是把官方 Nacos 打了个壳方便一键部署它的 README 也说明你完全可以换用自己搭的 Nacos只要把对应的配置文件建出来。3. 占位符解决多环境切换。你在 yml 里看到的config.server-addr、config.group、config.namespace不是配置值是 Maven 占位符打包时由 根 pom.xml 里的 profile 替换。dev默认激活Nacos 地址被填成jeecg-boot-nacos:8848——这是容器名Docker 网络内才能解析test、docker、prod 各有一套值切环境就是换 profile不用动任何 yml。⚙️ 跟着配置走新增一个自己的服务要改哪三处假设你要加一个 jeecg-report 服务照着 demo 模块抄骨架即可第一步建启动模块写本地最小配置。照抄 jeecg-demo-cloud-start 的 pom引jeecg-boot-starter-cloud 业务模块application.yml 只写四块server: port: 7003 spring: application: name: jeecg-report # 注册到 Nacos 的服务名 cloud: nacos: config: server-addr: config.server-addr group: config.group namespace: config.namespace discovery: server-addr: ${spring.cloud.nacos.config.server-addr} group: config.group namespace: config.namespace第二步注册不用你操心。只要 name 起好、能连上 Nacos启动后控制台服务列表里自动出现它网关的 discovery locator 也会自动能路由到它。第三步决定配置放哪层。原则是公共的进 Nacos私有的留本地配置放哪放什么本地 application.yml端口、服务名、Nacos 连接三件套地址/分组/命名空间Nacos 的 jeecg.yaml所有服务通用的文件上限、Jackson 日期格式等Nacos 的 jeecg-dev.yaml环境相关数据源、Redis 地址数据库这种环境相关的不要写进本地 yml那是你以后切环境最疼的地方。 避坑服务不出现或配置不生效先查这四处1. namespace 填的是显示名。Nacos 的命名空间参数必须填 ID那串 UUID填中文显示名会连到空命名空间表现就是配置死活不生效。去控制台命名空间列表里复制 ID。2. 占位符没被替换。如果启动日志里 Nacos 地址还是字面的config.server-addr说明你没走 Maven profile 直接跑了 jar 或 IDE 里没激活 profile。本地跑用mvn spring-boot:run会带默认 dev profile或直接mvn -Pdev,SpringCloud打包。3. 本地开发却用了容器地址。dev profile 的 Nacos 地址是jeecg-boot-nacos:8848容器名。你在宿主机直接起服务、Nacos 也装在本地时要自己在 profile 里把config.server-addr改成127.0.0.1:8848否则解析不到主机服务起不来也注册不上。4. 网关路由是空的。症状Swagger 聚合文档是空的、前端调不到后台。原因是网关比 jeecg-system 先启动动态路由还没加载到实例。官方 compose 里已经用启动前轮询 Nacos v3 接口、等 system 健康注册后再拉起网关的方式解决了看 docker-compose-cloud.yml 里 jeecg-boot-gateway 的 command。手动起服务时记住顺序Nacos → system → 网关。 只有生产环境才要操心的事Nacos 集群。仓库自带的是单节点简化部署生产上按 Nacos 官方文档做三节点集群避免注册中心单点。开启鉴权。根 pom 里有一段被注释的 profile 示例填上config.username/config.passwordnacos 账号后重新打包即可开启仓库默认是免鉴权模式生产必须开。环境隔离。给 dev/test/prod 各建一个命名空间对应各 profile 里填不同的config.namespaceID同一套代码靠 profile 就能切换环境。限流兜底。compose 里的 Sentinel 服务默认是注释状态上量后打开它流控、降级规则同样存在 Nacos网关 yml 里已配好数据源指向。下一步往哪走微服务环境跑通后仓库里留了几个现成的试验田jeecg-server-cloud/jeecg-visual/下的 jeecg-cloud-test-more 里有 Feign 服务间调用和熔断示例jeecg-demo-cloud-start 的 pom 里注释着 RabbitMQ、Seata 分布式事务、ShardingSphere 分库分表三块示例依赖取消注释就能跑。平台自身的 AI 模块Airag就部署在这套架构上建议先拿 demo 模块当沙盒加一个 Feign 接口从 jeecg-demo 调 jeecg-system 的字典接口把服务名 → 注册中心 → 网关 → 目标实例这条链路自己走一遍微服务的账就算真正算明白了。【免费下载链接】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),仅供参考
返回列表