news 2026/5/15 21:04:20

Ruoyi微服务全家桶:从零到一的部署启动实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ruoyi微服务全家桶:从零到一的部署启动实战指南

1. 环境准备:搭建基础服务

第一次接触Ruoyi微服务全家桶时,我花了整整两天时间才把环境跑通。现在回想起来,如果当时有人告诉我这些关键步骤,至少能节省80%的时间。我们先从最基础的环境搭建开始,这是整个项目能够正常运行的基石。

1.1 安装Nacos服务注册中心

Nacos就像微服务架构中的"电话簿",所有服务启动后都会在这里注册。我推荐直接下载最新稳定版,避免兼容性问题。解压后需要重点关注两个配置:

  1. 修改conf/application.properties中的spring.datasource.platform=mysql,这样才能使用MySQL作为持久化存储
  2. nacos.core.auth.enabled=true改为false(开发环境可暂时关闭认证)

启动命令特别简单:

# Linux/Mac sh startup.sh -m standalone # Windows cmd startup.cmd -m standalone

启动后访问http://localhost:8848/nacos,默认账号密码都是nacos。这里有个小技巧:我习惯在浏览器书签栏固定这个地址,后续调试会频繁用到。

1.2 配置Redis缓存服务

Redis在Ruoyi中承担着会话存储和缓存的重任。Windows用户可以直接下载MSI安装包,安装时记得勾选"添加Redis到系统环境变量"。安装完成后,需要检查两个关键点:

  1. 确认服务已启动(服务列表里应该有Redis服务)
  2. 测试连接是否正常:
redis-cli ping # 应该返回 PONG

我遇到过Redis内存不足导致服务异常的情况,建议在redis.windows.conf中修改:

maxmemory 256mb maxmemory-policy allkeys-lru

2. 数据库初始化

2.1 导入SQL文件

Ruoyi的GitHub仓库里通常会有个sql文件夹,里面包含所有需要的表结构。我建议按这个顺序导入:

  1. ry-config.sql(Nacos需要的配置表)
  2. ry-seata.sql(如果用到分布式事务)
  3. ry_2023xxxx.sql(主业务数据库)

导入时最容易出错的是字符集问题。我现在的做法是先用Navicat新建数据库时显式指定:

CREATE DATABASE `ry-cloud` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

2.2 检查数据源配置

在Nacos控制台的"配置管理"中,需要确认这些关键配置:

  • datasource.url(注意时区参数serverTimezone=Asia/Shanghai
  • datasource.username/password
  • redis.host/port/password

有个特别容易忽略的点:Nacos中的配置修改后,需要重启相关微服务才能生效。我习惯用这个检查顺序:

  1. 改配置 → 2. 发布 → 3. 重启服务 → 4. 检查日志

3. 后端服务启动

3.1 启动顺序与依赖关系

微服务启动就像多米诺骨牌,顺序错了就会连环报错。经过多次实践,我总结出最稳的启动顺序:

  1. Ruoyi-Gateway(网关服务)
  2. Ruoyi-Auth(认证服务)
  3. Ruoyi-System(系统模块)

每个服务启动时都要盯着控制台日志,我主要看三个关键信息:

  • "Nacos registry"开头的服务注册成功提示
  • 没有红色ERROR日志
  • 端口监听成功提示(比如"Netty started on port(s): 8080")

3.2 常见问题排查

端口冲突问题:我第一次启动时gateway老是报端口占用,后来发现是本地Skype占用了8080端口。快速检查方法:

# Linux/Mac lsof -i :8080 # Windows netstat -ano | findstr 8080

数据库连接失败:如果看到"Access denied for user"错误,试试这三步:

  1. 检查Nacos中的JDBC URL是否正确
  2. 确认数据库用户有远程连接权限
  3. 在连接字符串后加上&allowPublicKeyRetrieval=true

4. 前端项目启动

4.1 Node.js环境配置

前端项目对Node版本有严格要求,我推荐使用nvm管理多版本:

nvm install 16.14.0 nvm use 16.14.0

安装依赖时经常遇到网络问题,我的解决方案是:

  1. 设置淘宝镜像
npm config set registry https://registry.npmmirror.com
  1. 如果还报错就清空缓存重试
npm cache clean --force

4.2 联调关键配置

前端需要特别注意vue.config.js中的这几个配置项:

devServer: { port: 80, proxy: { '/prod-api': { target: 'http://localhost:8080', // 必须与gateway端口一致 changeOrigin: true, pathRewrite: { '^/prod-api': '' } } } }

验证码不显示的问题,90%都是这里配置不对。我现在的做法是:

  1. 先用Postman直接调后端接口看是否返回验证码
  2. 检查浏览器开发者工具中的Network请求
  3. 对比前端请求地址和后端接口文档

5. 全链路验证

所有服务启动后,我习惯用这个检查清单:

  1. Nacos服务列表显示所有3个核心服务
  2. Redis中有会话数据(用redis-cli输入keys *查看)
  3. 能正常登录且左侧菜单加载完整
  4. 任意页面刷新不会跳转到登录页
  5. 验证码能正常显示和校验

遇到跨域问题时,我会检查gateway模块的CorsConfig类,确保包含这些配置:

.allowedOriginPatterns("*") .allowedMethods("*") .allowedHeaders("*") .allowCredentials(true) .maxAge(3600);

最后提醒一个血泪教训:改完任何配置都要记得重新编译项目。我现在的习惯是每次修改后执行mvn clean install -DskipTests,确保所有改动都被打包进去。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 21:04:11

智能侧边栏开发——在对话框实时调取用户“偏好雷达图”

一、 业务场景:导购的“第二大脑” 在私域沟通中,导购最怕遇到这种场景:面对上百个客户,打开对话框却记不起对方是谁,买过什么,更不知道对方此时此刻想看什么。 痛点在于: 信息滞后&#xff1…

作者头像 李华
网站建设 2026/5/15 21:02:12

AI驱动数字营销平台架构解析:从工作流引擎到品牌个性化

1. 项目概述:一个AI驱动的数字营销代理平台最近在GitHub上看到一个挺有意思的项目,叫windagency/valora.ai。乍一看这个仓库名,可能很多人会有点懵,这到底是做什么的?是AI工具,还是营销平台?作为…

作者头像 李华
网站建设 2026/5/15 21:02:11

Claude与Figma智能协作:基于MCP协议的设计自动化实践

1. 项目概述:当Claude遇上Figma,设计协作的智能革命如果你是一名产品设计师或前端工程师,大概率经历过这样的场景:在Figma里反复调整一个组件的间距,只为找到那个“感觉对了”的数值;或者为了统一整个项目的…

作者头像 李华
网站建设 2026/5/15 20:59:52

基于CircuitPython与DotStar LED的智能光绘棒制作全攻略

1. 项目概述:当硬件编程遇上光影艺术光绘,这个听起来有点“魔法”的摄影技巧,其实原理很简单:在黑暗环境中,让相机快门长时间打开,然后你拿着一个会发光的东西在镜头前“画画”,相机就会把你移动…

作者头像 李华
网站建设 2026/5/15 20:58:45

7个实用技巧:Equalizer APO音效定制完全指南

7个实用技巧:Equalizer APO音效定制完全指南 【免费下载链接】equalizerapo Equalizer APO mirror 项目地址: https://gitcode.com/gh_mirrors/eq/equalizerapo Equalizer APO是一款免费开源的Windows音频处理工具,能够为你的音频设备提供专业级的…

作者头像 李华