Ruoyi微服务全家桶:从零到一的部署启动实战指南
1. 环境准备搭建基础服务第一次接触Ruoyi微服务全家桶时我花了整整两天时间才把环境跑通。现在回想起来如果当时有人告诉我这些关键步骤至少能节省80%的时间。我们先从最基础的环境搭建开始这是整个项目能够正常运行的基石。1.1 安装Nacos服务注册中心Nacos就像微服务架构中的电话簿所有服务启动后都会在这里注册。我推荐直接下载最新稳定版避免兼容性问题。解压后需要重点关注两个配置修改conf/application.properties中的spring.datasource.platformmysql这样才能使用MySQL作为持久化存储将nacos.core.auth.enabledtrue改为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到系统环境变量。安装完成后需要检查两个关键点确认服务已启动服务列表里应该有Redis服务测试连接是否正常redis-cli ping # 应该返回 PONG我遇到过Redis内存不足导致服务异常的情况建议在redis.windows.conf中修改maxmemory 256mb maxmemory-policy allkeys-lru2. 数据库初始化2.1 导入SQL文件Ruoyi的GitHub仓库里通常会有个sql文件夹里面包含所有需要的表结构。我建议按这个顺序导入ry-config.sqlNacos需要的配置表ry-seata.sql如果用到分布式事务ry_2023xxxx.sql主业务数据库导入时最容易出错的是字符集问题。我现在的做法是先用Navicat新建数据库时显式指定CREATE DATABASE ry-cloud DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;2.2 检查数据源配置在Nacos控制台的配置管理中需要确认这些关键配置datasource.url注意时区参数serverTimezoneAsia/Shanghaidatasource.username/passwordredis.host/port/password有个特别容易忽略的点Nacos中的配置修改后需要重启相关微服务才能生效。我习惯用这个检查顺序改配置 → 2. 发布 → 3. 重启服务 → 4. 检查日志3. 后端服务启动3.1 启动顺序与依赖关系微服务启动就像多米诺骨牌顺序错了就会连环报错。经过多次实践我总结出最稳的启动顺序Ruoyi-Gateway网关服务Ruoyi-Auth认证服务Ruoyi-System系统模块每个服务启动时都要盯着控制台日志我主要看三个关键信息Nacos registry开头的服务注册成功提示没有红色ERROR日志端口监听成功提示比如Netty started on port(s): 80803.2 常见问题排查端口冲突问题我第一次启动时gateway老是报端口占用后来发现是本地Skype占用了8080端口。快速检查方法# Linux/Mac lsof -i :8080 # Windows netstat -ano | findstr 8080数据库连接失败如果看到Access denied for user错误试试这三步检查Nacos中的JDBC URL是否正确确认数据库用户有远程连接权限在连接字符串后加上allowPublicKeyRetrievaltrue4. 前端项目启动4.1 Node.js环境配置前端项目对Node版本有严格要求我推荐使用nvm管理多版本nvm install 16.14.0 nvm use 16.14.0安装依赖时经常遇到网络问题我的解决方案是设置淘宝镜像npm config set registry https://registry.npmmirror.com如果还报错就清空缓存重试npm cache clean --force4.2 联调关键配置前端需要特别注意vue.config.js中的这几个配置项devServer: { port: 80, proxy: { /prod-api: { target: http://localhost:8080, // 必须与gateway端口一致 changeOrigin: true, pathRewrite: { ^/prod-api: } } } }验证码不显示的问题90%都是这里配置不对。我现在的做法是先用Postman直接调后端接口看是否返回验证码检查浏览器开发者工具中的Network请求对比前端请求地址和后端接口文档5. 全链路验证所有服务启动后我习惯用这个检查清单Nacos服务列表显示所有3个核心服务Redis中有会话数据用redis-cli输入keys *查看能正常登录且左侧菜单加载完整任意页面刷新不会跳转到登录页验证码能正常显示和校验遇到跨域问题时我会检查gateway模块的CorsConfig类确保包含这些配置.allowedOriginPatterns(*) .allowedMethods(*) .allowedHeaders(*) .allowCredentials(true) .maxAge(3600);最后提醒一个血泪教训改完任何配置都要记得重新编译项目。我现在的习惯是每次修改后执行mvn clean install -DskipTests确保所有改动都被打包进去。

相关新闻

最新新闻

日新闻

周新闻

月新闻