购物网站界面 管理员需求分析,西安百度推广网站,做网站比特币钱包,网站书店建设背景Ruoyi-cloud 项目学习 一、项目环境搭建与启动1.1 nacos安装部署1.1.1 nacos安装、启动1.1.2 nacos部署 1.2 seata安装部署1.3 后端部署与运行1.3.1 ruoyi-modules-file模块运行报错 1.4 nginx安装、部署、配置与启动1.5 redis安装与部署1.6 前段框架知识1.7 项目启动1.8 参考 … Ruoyi-cloud 项目学习 一、项目环境搭建与启动1.1 nacos安装部署1.1.1 nacos安装、启动1.1.2 nacos部署 1.2 seata安装部署1.3 后端部署与运行1.3.1 ruoyi-modules-file模块运行报错 1.4 nginx安装、部署、配置与启动1.5 redis安装与部署1.6 前段框架知识1.7 项目启动1.8 参考 二、技术选型与框架理解2.1 技术选型2.2 框架理解2.2.1 Spring Boot框架2.2.2 Spring Cloud框架2.2.2.1 服务注册与发现2.2.2.2 配置中心2.2.2.3 服务网关2.2.2.4 智能路由2.2.2.5 负载均衡2.2.2.6 断路器2.2.2.7 监控跟踪2.2.2.8 分布式消息队列 一、项目环境搭建与启动
参考视频或文章链接RuoYi-Cloud官方文档《若依框架讲解-微服务版》- bilibiliHow To Install DBeaver Universal Database Tool in Linux
请参考官方文档进行环境搭建这里只记录遇到的零散问题。
1.1 nacos安装部署
1.1.1 nacos安装、启动
安装nacos并使用bash startup.sh -m standalone单机模式启动后访问 http://127.0.0.1:8848/nacos/我发现没有登录界面即可登录nacos也就是说没有鉴权我就进入了nacos原因是我目前使用的是nacos-2.3.0“Nacos自2.2.2版本开始在未开启鉴权时默认控制台将不需要登录即可访问”具体说明可见官方文档注意是中文文档有个规律外国人开发的项目优先看英文文档中国人开发的项目优先看中文文档因为更新更及时如果中国人开发的项目更新中文文档都不及时反倒更优先更新“程序员的第一母语——英语”那就说明这项目压根就不打算面向国内程序员。停止nacos的命令是sh shutdown.sh。
1.1.2 nacos部署
nacos支持三种部署模式 单机模式 - 用于测试和单机试用。 集群模式 - 用于生产环境确保高可用。 多集群模式 - 用于多数据中心场景。 ruoyi项目默认使用单机模式
1.2 seata安装部署
RuoYi可以集成seata分布式事务
1.3 后端部署与运行
工程文件的打包是用/bin/package.bat文件完成的但我使用的是Ubuntu系统所以要将内容转换成shell文件才能执行网络上有现成的执行转换任务的工具直接拿来用也可以直接借助于大模型转换规则放在参考文章里了但没人愿意手敲我用的是大模型后面遇到了更好更直接的工具再放到文章里。
REM package.bat, bat文件中, 注释符号为REM
echo off REM 关闭命令回显功能,在执行后续的命令时,不显示命令本身。
echo. REM 输出一个空行
echo [信息] 打包Web工程生成war/jar包文件。
echo.%~d0 REM 获取当前批处理文件所在目录的驱动器号
cd %~dp0 REM 改变当前工作目录到批处理文件所在目录cd ..
call mvn clean package -Dmaven.test.skiptruepause这是转换后的package.sh文件执行后就会在各ruoyi-xxx模块下的/target目录生成该模块对应的jar包
#!/bin/bash
#package.sh
echo [信息] 打包Web工程生成war/jar包文件。
# $0 是 Bash shell 中的一个特殊变量表示当前正在执行的shell脚本的名称
# dirname 是一个 Bash shell 内置命令用于返回指定文件或目录的父目录名称。
cd $(dirname $0) || exit
cd ..
mvn clean package -Dmaven.test.skiptrue启动各个模块前先要启动nacos启动方法请往上翻。
1.3.1 ruoyi-modules-file模块运行报错
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder fdfs.domain in value ${fdfs.domain} 解决方法请看参考文章链接配置nacos所以并不是简单的把nacos启动了就完事了。搜索fdfs看到需要在nacos下建立一份ruoyi-file-dev.yml根据ry-config数据库下config_info表的字段data_id为ruoyi-file-dev.ymlgroup_id为DEFAULT_GROUP即可
参考文章链接《分布式事务》- Ruoyi官方文档
1.4 nginx安装、部署、配置与启动
1.5 redis安装与部署
见参考文章
1.6 前段框架知识 npmnode.js的包管理工具用于统一管理我们前端项目中需要用到的包、插件、工具、命令等便于开发和维护。 ES6Javascript的新版本ECMAScript6的简称。利用ES6我们可以简化我们的JS代码同时利用其提供的强大功能来快速实现JS逻辑。 vue-cliVue的脚手架工具用于自动生成Vue项目的目录及文件。 vue-router Vue提供的前端路由工具利用其我们实现页面的路由控制局部刷新及按需加载构建单页应用实现前后端分离。 vuexVue提供的状态管理工具用于统一管理我们项目中各种数据的交互和重用存储我们需要用到数据对象。 element-ui基于MVVM框架Vue开源出来的一套前端ui组件。 1.7 项目启动
Spring-Cloud是一个微服务框架什么是微服务(Microservices)微服务由许多较小的松散耦合的服务组成一个应用程序与大型紧密耦合的应用程序的整体方法相反。比如一个党支部达到一定人数时为方便活动就会拆分成一支部二支部这样分开活动更为方便但整体仍同属一个组织架构天下最基本的道理其实就这么多只是变化无穷。所以只需要将各个模块的jar包或war包启动即可启动脚本在项目的/bin目录下。
1.8 参考
参考文章《Nacos-v2 下载、安装并使用》《Nacos-v2 用户指南-权限认证》《Nacos-v2 部署手册》《Seata 是什么?》Rules of Converting DOS Batch Files to Shell ScriptsNginx中文官网《Redis 安装》- 菜鸟教程Microservices - Wikipedia
二、技术选型与框架理解
2.1 技术选型
技术栈选型系统环境Java EE 8 Servlet 3.0 Apache Maven 3主框架Spring Boot 2.3.xSpring Cloud Hoxton.SR9Spring Framework 5.2.xSpring Security 5.2.x持久层Apache MyBatis 3.5.xHibernate Validation 6.0.xAlibaba Druid 1.2.x视图层Vue 2.6.xAxios 0.21.0Element 2.14.x
2.2 框架理解
2.2.1 Spring Boot框架
参考文章Spring Boot - offical website
2.2.2 Spring Cloud框架
Spring Cloud是一系列框架的有序集合。看到Spring Cloud与Spring Boot一定要搞清楚这两个框架到底有什么区别面试的时候大概率肯定会问。 Question 1: Spring Cloud与Spring Boot这两个框架到底有什么区别 (1) Spring Boot 是 Spring的一套快速配置脚手架可以基于Spring Boot 快速开发单个微服务Spring Cloud是一个基于Spring Boot实现的云应用开发工具 (2) Spring Boot专注于快速、方便集成的单个个体Spring Cloud是关注全局的服务治理框架 (3) Spring Boot使用了默认大于配置的理念很多集成方案已经帮你选择好了能不配置就不配置Spring Cloud很大的一部分是基于Spring Boot来实现。 (4) Spring Boot可以离开Spring Cloud独立使用开发项目但是SpringCloud离不开Spring Boot属于依赖的关系。 Question 2: Spring Cloud与Spring Cloud Alibaba这两个框架到底又有什么区别 搞懂了上面那个问题这个问题又需要回应。我先说说我自己的理解再把综合了其它文章的答案贴到下面我的理解是“微服务可以理解为一套技术标准你得满足服务注册与发现、配置中心、服务网关等特性但不同厂家有不同的实现标准官方的Spring Cloud有自己的一套组件去实现这些功能(可能是从开源社区拿过来用或其它组织贡献的)国外的Netflix有它的Spring Cloud Netflix下的一系列组件国内的阿里有Spring Cloud Alibaba下的一系列组件”。 (1) 组件来源 Spring Cloud是一套微服务解决方案它集成了Netflix的组件如Eureka、Ribbon、Feign等为开发者提供了一整套微服务开发工具和框架。而Spring Cloud Alibaba是Spring Cloud的扩展组件它集成了阿里巴巴的一些开源组件包括但不限于Nacos一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台Sentinel面向分布式服务架构的流量控制产品和RocketMQ。 (2)功能特点 Spring Cloud Alibaba提供了一些阿里巴巴的开源组件以便于开发者更方便地使用这些组件来开发分布式应用服务。例如Spring Cloud Alibaba Nacos可以用于服务发现和配置管理而Spring Cloud Alibaba Sentinel则可以提供流量控制、熔断降级、系统负载保护等功能。 (3)关系 Spring Cloud Alibaba是阿里巴巴出品的Spring Cloud第二代实现标准它是阿里巴巴公司对微服务的实践总结出的已经在业界广泛使用。总的来说Spring Cloud Alibaba是Spring Cloud的子项目符合Spring Cloud的标准。 —— 来自星火大模型的回答 从这里可以看出阿里系的战略布局开发自己的一套技术架构并加入Spring生态从而得到更大面积的推广让更多的受众群体离不开Spring Cloud Alibaba成为阿里系产品的使用者并发展成潜在的用户这一招战略十分精妙华为的战略与之类似华为也在推广它自己的技术体系到主流生态中PyTorch就有华为的贡献。 参考文章Spring Cloud - offical websiteSpring Boot Vs Spring cloud《一篇文章搞懂 Spring Cloud 是什么》《终于有阿里资深架构师讲通Springcloud与Springboot的关系了》哈喽沃德先生 —— 博客主页《一文带您读懂什么是Spring Cloud与Spring Cloud Alibaba》- 知乎《最详细说明spring cloud和Spring Cloud Alibaba的联系和区别》- CSDN【一张图完整说明微服务基本概念和核心思想】 - bilibili
2.2.2.1 服务注册与发现
见《注册中心 | RuoYi》
2.2.2.2 配置中心
配置文件加载的优先级由高到低bootstrap.properties -bootstrap.yml - application.properties - application.yml 见《配置中心 | RuoYi》
2.2.2.3 服务网关
2.2.2.4 智能路由
2.2.2.5 负载均衡
2.2.2.6 断路器
2.2.2.7 监控跟踪
2.2.2.8 分布式消息队列