# 实战若依 ruoyi-cloud
**Repository Path**: MCXIAOBING/ruoyi-cloud
## Basic Information
- **Project Name**: 实战若依 ruoyi-cloud
- **Description**: 基于若依微服务版 ruoyi cloud 的完整框架调试、修正、注解说明和扩展,包含nacos、sentinel、seata等服务器环境,提供易于上手的完整微服务运行环境。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 15
- **Created**: 2024-10-26
- **Last Updated**: 2024-10-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 实战若依 ruoyi cloud
[](https://travis-ci.com/sofastack/sofa-tracer)
[](https://codecov.io/gh/sofastack/sofa-tracer/branch/master)

[](https://github.com/sofastack/sofa-tracer/releases)
白鹭实战系列以第三方开源平台为基准版进行二次开发,调试、修正、补正、和注解说明为主导工作,提供完整的配置和下载即可编译运行的环境,使其达到实际业务开发和生产应用状态。
目前同步集成了flowable工作流引擎,已经发布生产应用。
## 一、主要工作
本项目主要包括完善现有部分功能,增加dubbo、feign、log链路的完整业务流程。梳理并对框架流程进行文字说明,详细描述了微服务各个环节的执行过程。下载并搭建了nacos、seata、等支撑系统,对系统进行参数配置。
提供了完整的数据库备份,可以通过恢复运行。重新编译了部分支撑系统源代码,实现一套完整的最新技术系统架构,统一项目在Mysql8下运行。
默认当前环境为:
mysql8+,账号root/123
redis 无账号
新建数据库nacos、seata、skywalking、ruoyi-cloud,创建后使用数据库备份进行还原数据。
## 二、注册中心
启动nacos,执行bin\startup.cmd,登陆地址 http://127.0.0.1:8848/nacos 账号 nacos/nacos,默认当前nacos已调整为个体模式,配置分为dev和prod,当前所有配置都在数据库中。
## 三、事务中心
启动seata,执行bin\seata-server.bat,登陆地址 http://127.0.0.1:7091/ 账号 seata/seata。本项目的seata-server.jar已经重新编译过,只支持mysql8+,不能使用之前5版本。
## 四、流量控制
启动sentinel监控,执行sentinel-start.cmd,登陆地址 http://127.0.0.1:8718/ 账号 sentinel/sentinel。在nacos中已经配置了流控规则、熔断规则、热点规则、系统规则等。
## 五、服务治理
启动dubbo admin,执行start.bat,登陆地址 http://127.0.0.1:7001/ 账号 root/root。本项目采用最新dubbo3版本,不能和dubbo2互通。
## 六、日志链路
启动skywalking日志,执行bin\startup.bat,登陆地址 http://127.0.0.1:7080/ 无账号。系统启动会有两个服务,webapp服务启动时间较长,需要等待。oapService占用12800端口。
IDE设置微服务启动参数VM Options:
`
-javaagent:E:\ruoyi\server\skywalking-agent-8.10.0\skywalking-agent.jar -Dskywalking.agent.service_name=ruoyi-system -Dskywalking.collector.backend_service=127.0.0.1:11800
`
可以只对ruoyi-system、ruoyi-job、ruoyi-order、ruoyi-product四个服务进行设置,设置后再依次启动服务,注意修改对应的路径和服务名。
## 七、测试用例
7.1、以上系统全部依次启动成功后,IDEA编译后依次启动微服务模块ruoyi-gateway、ruoyi-auth、ruoyi-system、ruoyi-job、ruoyi-order、ruoyi-product。
前端编译ruoyi-ui占用80端口,启动后登陆,admin/123。
7.2、进入用户模块如下图,点击订单按钮,功能为创建订单同时扣减库存数量,当数量改为1000时由于库存数量不足,会由seata全局事务进行撤回。
本功能微服务之间采用了dubbo3进行调用,从ruoyi-system->ruoyi-job,由seata进行全局事务管理。
7.3、进入用户模块如下图,点增加用户,功能为增加用户的同时会新建一个任务job,当用户名以ro开头的时候,会创建job失败,由seata全局事务撤回。
本功能微服务之间采用了feign进行调用,从ruoyi-order->ruoyi->product,由seata进行全局事务管理。
## 八、文档
作者整理了各个模块的执行流程,记录文档在此工程的 `各个模块文件中` 分别为:
* [1、系统验证码创建和验证流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-gateway/src/main/java/com/ruoyi/gateway/controller/CodeController.java)
* [2、系统登陆账号认证流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java)
* [3、网关启动和执行流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java)
* [4、微服务安全效验和执行流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/SecurityInitialize.java)
* [5、用户权限和数据权限流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/RequiresPermissions.java)
* [6、模块架构划分和依赖关系](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-common/pom.xml)
* [7、feign配置和调用执行流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-api/ruoyi-api-modules/src/main/java/com/ruoyi/job/api/RemoteJobService.java)
* [8、dubbo配置和调用执行流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-dubbo/ruoyi-order/src/main/java/com/ruoyi/dubbo/order/controller/OrderController.java)
* [9、日志链路流程](https://gitee.com/baijigan/ruoyi-cloud/blob/master/ruoyi-cloud/ruoyi-modules/ruoyi-system/src/main/resources/logback.xml)
## 九、技术支持
编译并成功运行,技术交流和支持可加QQ群:
白鹭fly https://gitee.com/baijigan