RuoYi-Cloud 微服务版
RouYi-Cloud 基于Spring Boot、Spring Cloud & Alibaba、Vue、Element 的前后端分离微服务极速后台开发框架。RouYi-Cloud 是一个Java EE 企业级分布式微服务架构平台,基于经典技术组合(Spring Boot、Spring Cloud & Alibaba、Vue、Element),内置模块如: 部门管理、角色用户、菜单及按钮授权、数据
·
若依优秀的开源框架
若依版本:
-
RuoYi-Vue 前端分离版
-
RuoYi-Cloud 微服务版
-
RuoYi-App 移动版
RouYi-Cloud 基于Spring Boot、Spring Cloud & Alibaba、Vue、Element 的前后端分离微服务极速后台开发框架。
RouYi-Cloud 是一个Java EE 企业级分布式微服务架构平台,基于经典技术组合(Spring Boot、Spring Cloud & Alibaba、Vue、Element),内置模块如: 部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线灯饰任务;支持集群,支持多数据源。
主要特性
-
完全响应式布局(支持电脑、平板、手机等所有的主流设备)
-
强大的一键生成功能(包括控制器、模型、试图、菜单等)
-
支持多数据源,简单配置即可实现切换。
-
支持按钮及数据权限,可自定义部门数据权限。
-
对常用js插件进行二次封装,使js代码变得简洁,更加易维护
-
完善的XSS防范及脚本过滤,彻底杜绝XSS攻击; XSS攻击全称跨站脚本攻击,是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
-
Maven多项目依赖,模块及插件分项目,尽量低耦合,方便模块升级、增减模块。
-
国际化支持,服务端及客户端支持
-
完善的日志记录体系简单注解即可实现
内置功能
-
用户管理:主要完成系统用户配置。
-
部门管理: 配置系统组织机构,树结构展现支持数据权限。
-
岗位管理:配置系统菜单,操作权限,按钮权限识别等。
-
角色管理:角色菜单权限分配、设置角色按机构进行数据范围的权限划分。
-
字典管理:对系统中经常使用的一些较为固定的数据进行维护。
-
参数管理:对系统动态配置常用参数。
-
通知公告:系统通知公告信息发布维护。
-
操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
-
登录日志:系统登录日志记录查询包含登录异常。
-
在线用户:当前系统中活跃用户状态监控。
-
定时任务:在线添加、修改、删除任务调度包含执行结果日志。
-
代码生成:前后端代码的生成支持CRUD下载。
-
系统接口:根据业务代码自动生成相关的api接口文档
-
服务监控: 监视当前系统CPU、内存、磁盘、堆栈等相关信息。
-
缓存监控: 对系统的缓存信息查询,命令统计等。
-
在线构建器:拖动表单元素生成相对应的Vue代码。
-
连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
文件结构——后端结构

后端技术
-
后端技术栈 Spring Boot、Spring Cloud & Alibaba、Nacos、Sentinel
SpringBoot框架
-
SpringBoot框架:开箱即用框架,提供各种默认配置来简化项目配置。让我们的Spring应用变得更轻量化、更快的入门。在主程序执行main函数就可以运行。你也可以打包你的应用为jar并通过 使用Java-jar来运行你的web应用。它遵循“约定大于配置”的原则,使用SpringBoot只需要很少的配置,大部分时候直接使用默认的配置即可。同时可以与Spring Cloud 的微服务无缝结合。 版本要求就是 Spring Boot 2.0以上版本要求 jdk8 或者以上 服务器tomcat8或者以上
-
优点
-
使编码变得简单:推荐使用注解
-
使配置变得简单:自动配置、快速集成新技术能力没有冗余的代码生成和XML配置的要求
-
使部署变得简单:内嵌Tomact、Jetty、Undertow等web容器,无需以war包形式部署
-
使监控变得简单:提供运行时的应用监控
-
使集成变得简单:对主流开发框架的无配置集成。
-
使开发变得简单:极大地提高了开发快速构建项目、部署效率。
Spring Cloud 框架
-
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot 的开发风格做到一键启动和部署。Spring Cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考研的服务框架组合起来,通过Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
-
优点
-
把模块拆分,使用接口通信,降低模块之间的耦合度。
-
把项目拆分成若干子项目,不同团队负责不同的子项目。
-
增加功能时只需要暂时增加一个子项目,调用其他系统的接口就可以。
-
可以灵活的进项分布式部署
Spring Security安全机制
-
Spring Security·是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。
-
功能
-
Authentication 认证,就是用户登录
-
Authorization 授权,判断用户拥有什么权限,可以访问什么资源
-
安全防护, XSS跨站脚本攻击,session攻击等
-
非常容易结合Spring进行使用
Spring Security 与 Shiro 的区别
相同点
-
认证功能
-
授权功能
-
加密功能
-
会话管理
-
缓存支持
-
rememberMe功能
不同点
优点
-
Spring Security 基于Spring开发,项目如果使用Spring作为基础,配合Spring Security 做权限更加方便。而Shrio需要和Spring进行整合开发
-
Spring Security功能比Shrio更加丰富,比如安全防护方面
-
Spring Security社区资源相对比Shrio更加丰富
缺点
-
Apache Shiro是Java的一个安全框架,它的配置和使用比较简单,Spring Security上手复杂些
-
Shrio依赖性低,不需要依赖任何框架和容器,可以独立运行。Spring Security依赖Spring容器。
Nacos : 就是 Spring CloundAlibaba架构中最重要的组件,提供注册中心、配置中心和动态DNS服务三大功能,无缝对接Spring Cloud、Spring 、Dubbo等流行框架。 功能:
-
服务注册发现和服务健康监测:支持基于DNS和基于RPC的服务发现,服务端可以通过SDK或者APi进行服务注册,相应的服务消费者可以使用DNS或者Http查找的方法获取列表。Nacos同时提供对服务的实时健康检查,阻止向不健康的主机或服务器放松请求,Nacso也有有好的控制台界面。——》(配置管理,服务管理,权限管理,命名空间,集群管理)
-
动态DNS服务:支持权重路由,更容易地实现中间负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。
-
动态配置服务:Nacos支持动态的配置管理,将服务夫人配置信息分环境分类别外部管理,并且支持热更新。Nacos的配置信息存储与数据库中,支持配置信息的监听和版本回滚。
-
服务及元数据管理:包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的SLA等这些东西, 对了还有那个metrics统计数据。
Sentiel (哨兵): 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。
主要两部分 :
-
核心库(Java客户端)不依赖任何框架或者库,能够运行于所有Java运行时环境(jdk7),同时对Dubbo、Spring Cloud 等框架也支持。
-
控制台 基于Spring Boot 开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。
-
什么是熔断和降级
服务的稳定是公司可持续发展的重要基石,随着业务量的快速发展,一些平时正常运行的服务,会出现各种突发状况,而且在分布式系统中,每个服务本身又存在很多不可控的因素,比如线程池处理缓慢,导致请求超时,资源不足,导致请求被拒绝,又甚至直接服务不可用、宕机、数据库挂了、缓存挂了、消息系统挂了...对于一些非核心服务,如果出现大量的异常,可以通过技术手段,对服务进行降级并提供有损服务,保证服务的柔性可用,避免引起雪崩效应。
服务熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施。
服务降级是在服务器压力陡增的情况下,利用有限资源,根据当前业务情况,关闭某些服务接口或者页面,以此释放服务器资源以保证核心任务的正常运行。
-
为什么要使用熔断和降级
在一个分布式系统里,一个服务依赖多个服务,可能存在某个服务调用失败,比如超时、异常等,需要保证在一个依赖出问题的情况下,不会导致整体服务失败。
分布式事务
数据库事务的基本概念(ACID)
原子性(Atomicity):操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指令都执行失败,数据进行回滚,回到执行指令前的数据状态。要么执行,要么不执行
一致性(Consistency):事务的执行使数据从一个状态转换为另一个状态,数据库的完整性约束没有被破坏。能量守恒,总量不变
隔离性(Isolation):隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。信息彼此独立,互不干扰
持久性(Durability):当事务正确完成后,它对于数据的改变是永久性的。不会轻易丢失
#基本介绍
-
什么是分布式事务
指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。从本质上来说,分布式事务就是为了保证不同数据库的数据一致性。
-
为什么要使用分布式事务
在微服务独立数据源的思想,每一个微服务都有一个或者多个数据源,虽然单机单库事务已经非常成熟,但是由于网路延迟和不可靠的客观因素,分布式事务到现在也还没有成熟的方案,对于中大型网站,特别是涉及到交易的网站,一旦将服务拆分微服务,分布式事务一定是绕不开的一个组件,通常解决分布式事务问题。
-
seata 分布式事务
Seata是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。
Seata目标打造一站式的分布事务的解决方案,最终会提供四种事务模式:
AT 模式:
TCC 模式:
Saga 模式:
XA 模式:正在开发中... 目前使用的流行度情况是: AT > TCC > Saga。
更多推荐
所有评论(0)