基于若依搭建微服务nacos版本(ruoyi-Cloud前后端分离)

说明:本文介绍基于Ruoyi-Cloud前后端分离nacos版本的微服务从0到1的搭建过程,同时新增一个新的微服务模块。是基于官方文档的补充说明,需要结合Ruoyi-Cloud的官方文档 https://doc.ruoyi.vip/ruoyi-cloud/
如果直接查看官方文档便可成功部署,推荐直接看官方文档。
以下,我将从自己搭建安装过程中,遇到的坑和bug做详细补充说明,主要涵盖以下几个方面:
1、前置环境搭建(重要):主要包含nacos、redis。
2、运行系统:主要包含前后端运行,以及运行过程中的关键确认点。

1 环境准备

建议下列组件安装在自己的本机上,或者安装在 可以和你的主机相互访问 的另一台服务器上,这样初次部署可以规避很多网络访问的坑。

JDK >= 1.8 (推荐1.8版本) # 独自安装即可
Mysql >= 5.7.0 (推荐5.7版本) # 独自安装即可
Redis >= 3.0 # 可以docker安装,参看 https://blog.csdn.net/MoastAll/article/details/129221742
Maven >= 3.0 # 独自安装接口
Node >= 12 # 独自安装即可
nacos >= 2.0.4 (ruoyi-cloud < 3.0 需要下载nacos >= 1.4.x版本) # docker安装

nacos的安装,可以参考我的另一个文章:docker安装nacos

2 运行系统

安装官方的操作进行代码下载和数据库配置

1、前往Gitee下载页面(https://gitee.com/y_project/RuoYi-Cloud (opens new window))下载解压到工作目录
2、导入到Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入。
Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定)
3、创建数据库ry-cloud并导入数据脚本ry_2021xxxx.sql(必须),quartz.sql(可选)
4、创建数据库ry-config并导入数据脚本ry_config_2021xxxx.sql(必须)
5、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置 # 在上文的docker安装nacos中,进行数据库配置。

需要注意的是,当我们吧ry-config数据导入完成后,请重启nacos,并登录nacos控制台,理论上是可以看到该界面的
如果没有看到该界面,请查看你的

  • nacos是否有问题,有没有同时打开8848 9848 9849这三个端口
  • 是否存在网络问题:确保你的nacos所在服务器能够访问你在nacos配置文件中配置的数据库
  • 数据库配置是否错误:确保在ry-cloud.config_info表中配置的content数据连接内容(mysql、redis等),是可以被你的微服务直接访问的
    图一:nacos

2.1 后端运行

打开运行基础模块(启动没有先后顺序)
RuoYiGatewayApplication (网关模块 必须)
RuoYiAuthApplication (认证模块 必须)
RuoYiSystemApplication (系统模块 必须)
RuoYiMonitorApplication (监控中心 可选)
RuoYiGenApplication (代码生成 可选)
RuoYiJobApplication (定时任务 可选)
RuoYFileApplication (文件服务 可选)

2.2 前端运行

进入项目目录
cd ruoyi-ui
强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npmmirror.com
本地开发 启动项目
npm run dev
4、打开浏览器,输入:(http://localhost:80 (opens new window)) 默认账户/密码 admin/admin123)
若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功

在这里插入图片描述

3 新建一个微服务module:ruoyi-jxbd

通过前两步骤,我们已经完成ruoyi-Cloud的启动,接下来我们需要做的基于该框架额外搭建一个微服务module,module名称就叫做:jxbd(不用问我为什么叫这个,随便起的)。

3.1 使用postman调用接口

做开发的第一步是模仿ruoyi的接口实现方式,首先我们要能使用postman调用若依的接口。
登录进ruoyi控制台,打开F12,然后刷新页面。可以看到一些请求接口,这里我们选择getInfo接口,如下图:
我们需要的三个信息:

  • 请求url:http://localhost/dev-api/system/user/getInfo
  • 请求方式:GET
  • 鉴权:Authorization
    在这里插入图片描述
    打开postman,并配置上述信息,发送请求即可,如下:
    在这里插入图片描述

3.2 模仿ruoyi-system模块,新建一个ruoyi-jxbd模块

先放截图:
在这里插入图片描述
基于ruoyi搭建一个新的module需要做的事情有如下几个方面:

  • 1、新增上图所述的目录结构和代码
  • 2、修改主pom文件,增加新模块
  • 3、在ry-cloud.config_info表中,新增一条记录,该记录用于新服务注册到nacos。
  • 4、启动新模块

3.2.1 新建ruoyi-jxbd模块

这个模块的创建,我是参考ruoyi-modules ruoyi-system进行创建的。学习的第一步,像素级复刻,开始!
在这里插入图片描述
完整的目录树,见上上图。需要重点关注的文件有:
pom.xml文件:该文件是参考system下面的pom修改的,需要修改的已在下文标注

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://maven.apache.org/POM/4.0.0"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><groupId>com.ruoyi</groupId><artifactId>ruoyi</artifactId><version>3.6.3</version></parent><modelVersion>4.0.0</modelVersion><!-- 修改为自己的名字 --><artifactId>ruoyi-jxbd</artifactId><description><!-- 修改为自己的名字 -->ruoyi-jxbd系统模块</description><dependencies><!-- SpringCloud Alibaba Nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- SpringCloud Alibaba Nacos Config --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- SpringCloud Alibaba Sentinel --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!-- SpringBoot Actuator --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- Swagger UI --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger.fox.version}</version></dependency><!-- Mysql Connector --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!-- RuoYi Common DataSource --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-datasource</artifactId></dependency><!-- RuoYi Common DataScope --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-datascope</artifactId></dependency><!-- RuoYi Common Log --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-log</artifactId></dependency><!-- RuoYi Common Swagger --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-swagger</artifactId></dependency></dependencies><build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

bootstrap.yml文件,需要注意的点:

  • 1、port,要注意不要和系统已占用的端口、若依的其他模块端口冲突,可以在ReadMe.md中查看ruoyi配置的默认端口。
  • 2、应用名称,修改为ruoyi-jxbd
# Tomcat
server:port: 9888# Spring
spring: application:# 应用名称name: ruoyi-jxbdprofiles:# 环境配置active: devcloud:nacos:discovery:# 服务注册地址server-addr: 127.0.0.1:8848config:# 配置中心地址server-addr: 127.0.0.1:8848# 配置文件格式file-extension: yml# 共享配置shared-configs:- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

在这里插入图片描述
其余代码,像素级复刻SysConfigController的具体实现逻辑即可。

3.2.2 修改主pom文件

添加ruoyi-jxbd模块
在这里插入图片描述

3.2.3 新增nacos配置

在ry-cloud.config_info表中,新增一条记录:
该记录也是借鉴system模块修改的,主要关注的点:

  • 1、redis和mysql配置
  • 2、mybatis的包名称
INSERT INTO `ry-config`.config_info (id, data_id, group_id, content, md5, gmt_create, gmt_modified, src_user, src_ip, app_name, tenant_id, c_desc, c_use, effect, type, c_schema, encrypted_data_key) VALUES (10, 'ruoyi-jxbd-dev.yml', 'DEFAULT_GROUP', '# spring配置
spring:redis:host: 192.168.10.15port: 6379password:datasource:druid:stat-view-servlet:enabled: trueloginUsername: adminloginPassword: 123456dynamic:druid:initial-size: 5min-idle: 5maxActive: 20maxWait: 60000connectTimeout: 30000socketTimeout: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: truemaxPoolPreparedStatementPerConnectionSize: 20filters: stat,slf4jconnectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000datasource:# 主库数据源master:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxxx:3306/database?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: xxxx# 从库数据源# slave:# username: # password: # url: # driver-class-name: # mybatis配置
mybatis:# 搜索指定包别名typeAliasesPackage: com.ruoyi.jxbd# 配置mapper的扫描,找到所有的mapper.xml映射文件mapperLocations: classpath:mapper/**/*.xml# swagger配置
swagger:title: 系统模块接口文档license: Powered By ruoyilicenseUrl: https://ruoyi.vip', '00678c89684ec0b825cb9b71e032db65', '2020-11-20 00:00:00', '2023-12-04 07:51:28', 'nacos', '0:0:0:0:0:0:0:1', '', '', '数据模块', 'null', 'null', 'yaml', '', '');

3.2.3 启动新的微服务模块

  • 1、重新编译整个代码工程
  • 2、重启nacos,确保nacos中有ruoyi-jxbd的配置
  • 3、启动gateway、auth、system、jxbd模块
    postman调用接口,即可,至此完工。

参考资料:
RuoYi-Cloud介绍 :https://doc.ruoyi.vip/ruoyi-cloud/
Ruoyi-Cloud讨论:https://gitee.com/y_project/RuoYi-Cloud/issues/I4956F

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--权限问题(2)

目录 前文 前言 1. 文件的权限 1.1 文件的访问者分类 1.2 文件类型和访问权限&#xff08;事物属性&#xff09; 2. 如何修改文件的权限 3.对比权限有无的表现 4.修改用户角色 5.修改权限的第二种做法 6.目录的权限 7.默认权限 前文 Linux--权限问题&#xff08;1&#…

云原生之深入解析Kubernetes本地持久化存储方案OpenEBS LocalPV的最佳实践

一、K8s 本地存储 K8s 支持多达 20 种类型的持久化存储&#xff0c;如常见的 CephFS 、Glusterfs 等&#xff0c;不过这些大都是分布式存储&#xff0c;随着社区的发展&#xff0c;越来越多的用户期望将 K8s 集群中工作节点上挂载的数据盘利用起来&#xff0c;于是就有了 loca…

一种用于心音分类的轻量级1D-CNN+DWT网络

这是由National Institute of Technology Rourkela, Central University of Rajasthan发布在2022 ICETCI的论文&#xff0c;利用离散小波变换(DWT)得到的多分辨率域特征对1D-CNN模型进行心音分类训练。 预处理& DWT 由于FHS和各种病理声的频率范围在500hz以下[5]&#xff…

像素、分辨率、频率、精度、延迟,关于光学动作捕捉镜头参数的那些事

精准度、分辨率、频率、延迟等参数是影响光学动作捕捉效果和还原度的关键因素。下面逐一介绍NOKOV度量动作捕捉系统的基础参数。 NOKOV度量动作捕捉系统的核心产品是光学动作捕捉镜头&#xff0c;用于捕捉被测物表面反光标记点的三维坐标数据。 从表中可以看到&#xff0c;不同…

电阻的运用

本文引注 https://baijiahao.baidu.com/s?id1749115196647029942&wfrspider&forpc 一、零欧电阻 在电子电路设计时经常用到的一种元件就是电阻&#xff0c;我们都知道电阻在电路中起到分压限流的作用。然而&#xff0c;实际使用时会用到一种特殊的电阻&#xff1a;零…

用Kotlin抓取微博数据并进行热度预测

闲来无事&#xff0c;逛逛微博&#xff0c;看着每条热度很高的博文趣事&#xff0c;心想能否通过爬虫抓取微博热度并进行趋势分析&#xff0c;说干就干&#xff0c;这里需要注意的问题我会一一标注。 爬虫ip信息的设置是在爬虫程序中进行的。爬虫ip信息可以帮助爬虫程序在访问…

使用React实现随机颜色选择器,JS如何生成随机颜色

背景 在标签功能中&#xff0c;由于有「背景色」属性&#xff0c;每次新增标签时都为选择哪种颜色犯难。因此&#xff0c;我们思考如何通过JS代码生成随机颜色&#xff0c;提取一个通用的随机颜色生成工具&#xff0c;并基于React框架封装随机颜色选择器组件。 实际效果 原理…

Parade Series - Message Interaction

if (true) {Swal.fire("节目发布", "发布完毕", "success");event.preventDefault(); } if (false) {Swal.fire("节目发布", "发布失败", "error");event.preventDefault(); }if (true) {for (var i 0; i < b…

AI日报:OpenAI向新用户重新开放ChatGPT Plus订阅

欢迎订阅专栏 《AI日报》 获取人工智能邻域最新资讯 文章目录 总览Chatgptplus重新开放订阅#暂停原因功能 OpenAI的1000万美元安全人工智能拨款拨款初衷学术捐赠 总览 ChatGPT Plus再次向新用户开放&#xff0c;但目前每三小时限制发送40条消息。 OpenAI还宣布拨款1000万美元…

数据结构-07-二叉树

前面学习的栈、队列等等都是线性表结构。树是一种非线性表结构&#xff0c;比线性表的数据结构要复杂。 1-树tree “树”这种数据结构类似我们现实生活中的“树”&#xff0c;这里面每个元素我们叫作“节点”&#xff1b;用来连线相邻节点之间的关系&#xff0c;我们叫作“父子…

云端赋能大湾区:华为云照亮数字化转型之路

编辑&#xff1a;阿冒 设计&#xff1a;沐由 在中国的经济版图上&#xff0c;大湾区是极其重要的增长引擎。这块富有活力和创新力的经济区域里&#xff0c;荟聚了大量的高新技术企业&#xff0c;以及一批创新孵化器和科研机构&#xff0c;产业升级和技术创新的氛围格外浓烈。 1…

山峰个数 - 华为OD统一考试

OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 给定一个数组,数组中的每个元素代表该位置的海拔高度。0表示平地,>=1时表示属于某个山峰,山峰的定义为当某个位置的左右海拔均小于自己的海拔时,该位置为山峰。数组起始位置计算时可只满足一边的条件。 …

lv12 linux内核的安装与加载

目录 1 tftp加载Linux内核及rootfs 1.1 uboot内核启动命令 1.2 uboot自启动参数环境变量 1.3 实验 2 EMMC加载Linux 内核及rootfs ​编辑 2.1 emmc中写入uimage ​编辑 2.2 emmc中写入dtb 2.3 emmc中写入根文件系统 2.4 设置环境变量 3 tftp加载Linux内核nfs挂载ro…

centos 手动编译安装git

原因 由于centos自带的git版本太低&#xff0c;使用git的时候会出现很多问题&#xff0c;但是尝试了各种办法无法直接更新git版本&#xff0c;所以最后自己手动编译安装git 在github下载源码&#xff0c;下载解压之后&#xff0c;上传到服务器&#xff0c;我上传到 /home/user…

探索多功能SQL数据库编辑器 - Richardson Software RazorSQL

在当今数字化时代&#xff0c;SQL数据库的管理和编辑是许多企业和开发人员必不可少的任务。为了提高生产力和简化数据库操作&#xff0c;Richardson Software推出了一款强大而多功能的SQL数据库编辑器 - RazorSQL。 RazorSQL是一款功能全面的数据库管理工具&#xff0c;可适用…

LeetCode(61)删除链表的倒数第 N 个结点【链表】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 删除链表的倒数第 N 个结点 1.题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例…

【STM32独立看门狗(IWDG) 】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、看门狗是什么&#xff1f;1.简介2. 主要功能3.独立看门狗如何工作4.寄存器写保护5.看门狗 看门时间 二、使用步骤1.开启时钟2.初始化看门狗3.开启看门狗4.喂…

ACL和NAT

文章目录 ACL和NAT一、ACL概述及产生背景1、ACL访问控制列表2、ACL工作原理3、ACL种类4、ACL命令配置步骤4.1 ACL命令配置4.1 ACL配置步骤 二、NAT&#xff08;网络地址转换&#xff09;1、NAT概述2、NAT类型2.1 静态NAT与动态NAT 3、NATPT&#xff08;端口映射&#xff09;4、…

详解—【C++】lambda表达式

目录 前言 一、lambda表达式 二、lambda表达式语法 2.1. lambda表达式各部分说明 2.2. 捕获列表说明 三、函数对象与lambda表达式 前言 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法。 #include <algorithm> #i…

服务器被攻击宕机的一些小建议

现在网络攻击屡有发生&#xff0c;任何网站服务器都面临这样的危险&#xff0c;服务器被攻击造成的崩溃宕机是损失是我们无法估量的。网络攻击我们无法预测&#xff0c;但做好防御措施是必须的&#xff0c;建议所有的网站都要做好防范措施&#xff0c;准备相应的防护预案&#…