【终身会员免费】微服务企业版快速开发框架(SaaS模式)源码(企业版,含视频20G)
核心技术采用Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中间件。
希望能努力打造一套从 JavaWeb基础框架 – 分布式微服务架构 – 持续集成 – 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。
基于SpringCloud(Hoxton.SR9) + SpringBoot(2.3.6.RELEASE) 的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀。具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发,支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
功能介绍:
- 租户管理:运营人员管理所有的租户创建
- 工作台:普通用户常用功能
- 组织管理:组织、岗位、用户数据维护、重置用户密码等
- 资源中心:消息、短信、附件管理
- 流程管理:流程部署、模型管理、流程示例
- 系统设置:菜单、资源配置、角色管理、给角色绑定用户、给角色授权菜单和资源、字典、地区、系统参数、操作日志、登录日志、应用管理等
- 网关设置:限流和阻止访问
- 开发者管理:定时任务、接口文档、注册&配置中心、服务监控、数据库监控、zipkin监控、SkyWalking监控
项目亮点功能介绍:
- 服务注册&发现与调用:基于Nacos来实现的服务注册与发现,使用使用Feign来实现服务互调, 可以做到使用HTTP请求远程调用时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。
- 负载均衡:将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件,方面进行限流。
- 服务鉴权:通过JWT的方式来加强服务之间调度的权限验证,保证内部服务的安全性。
- 熔断机制:因为采取了服务的分布,为了避免服务之间的调用“雪崩”,采用了Hystrix的作为熔断器,避免了服务之间的“雪崩”。
- 监控:利用Spring Boot Admin 来监控各个独立Service的运行状态;利用turbine来实时查看接口的运行状态和调用频率;通过Zipkin来查看各个服务之间的调用链等。
- 链路调用监控:同时实现了Zipkin和SkyWalking作为本项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。
- 数据权限利用基于Mybatis的DataScopeInnerInterceptor拦截器实现了数据权限功能
- SaaS(多租户)的无感解决方案本项目支持3种常见的租户解决方案和无租户方案,同一套代码,修改一个配置即可实现租户模式只有切换。
- 缓存抽象采用CacheOps操作缓存,内置2种实现:Caffeine、 Redis,可以让项目应急时在无Redis环境正常运行
- 优雅的Bean转换采用Dozer、BeanUtil等组件来对 DTO、DO、PO等对象的优化转换
- 前后端统一表单验证严谨的表单验证通常需要 前端+后端同时验证, 但传统的项目,均只能前后端各做一次检验, 后期规则变更,又得前后端同时修改。
故在hibernate-validator
的基础上封装了lamp-validator-starter
起步依赖,提供一个通用接口,可以获取需要校验表单的规则,然后前端使用后端返回的规则,
以后若规则改变,只需要后端修改即可。 - 防跨站脚本攻击(XSS)
- 通过过滤器对所有请求中的 表单参数 进行过滤
- 通过Json反序列化器实现对所有 application/json 类型的参数 进行过滤
- 当前登录用户信息注入器
- 通过注解实现用户身份注入
- 在线API由于原生swagger-ui某些功能支持不够友好,故采用了国内开源的
knife4j
,并制作了stater,方便springboot用户使用。 - 代码生成器基于Mybatis-plus-generator自定义了一套代码生成器, 通过配置数据库字段的注释,自动生成枚举类、数据字典注解、SaveDTO、UpdateDTO、表单验证规则注解、Swagger注解等。
- 定时任务调度器:基于xxl-jobs进行了功能增强。(如:指定时间发送任务、执行器和调度器合并项目、多数据源)
- 大文件/断点/分片续传前端采用webupload.js、后端采用NIO实现了大文件断点分片续传,启动Eureka、Zuul、File服务后,直接打开docs/chunkUploadDemo/demo.html即可进行测试。
经测试,本地限制堆栈最大内存128M启动File服务,5分钟内能成功上传4.6G+的大文件,正式服耗时则会受到用户带宽和服务器带宽的影响,时间比较长。 - 分布式事务集成了阿里的分布式事务中间件:seata,以 高效 并且对业务 0侵入 的方式,解决 微服务 场景下面临的分布式事务问题。
- 跨表、跨库、跨服务的关联数据自动注入器用于解决跨表、跨库、跨服务分页数据的属性或单个对象的属性 回显关联数据之痛, 支持对静态数据属性(数据字典)、动态主键数据进行自动注入。
- 灰度发布为了解决频繁的服务更新上线,版本回退,快速迭代,公司内部协同开发,本项目采用修改ribbon的负载均衡策略来实现来灰度发布。
技术栈/版本介绍:
- 所涉及的相关的技术有:
- JSON序列化:Jackson
- 消息队列:RabbitMQ
- 缓存:Redis
- 数据库: MySQL 5.7.9 或者 MySQL 8.0.19
- 定时器:采用xxl-jobs项目进行二次改造
- 前端:vue + element-ui
- 持久层框架: Mybatis-plus
- 代码生成器:基于Mybatis-plus-generator自定义
- API网关:Gateway/zuul
- 服务注册&发现和配置中心: Nacos
- 服务消费:OpenFeign
- 负载均衡:Ribbon
- 服务熔断:Hystrix
- 项目构建:Maven
- 分布式事务: seata
- 分布式系统的流量防卫兵: Sentinel
- 监控: spring-boot-admin
- 链路调用跟踪: zipkin/SkyWalking
- 文件服务器:FastDFS 5.0.5/阿里云OSS/本地存储/MinIO
- Nginx
- 部署方面:
- 服务器:CentOS
- Jenkins
- Docker
- Kubernetes
视频目录: 01.视频简介.mp4 02.工欲善其事必先利其器.mp4 03.工欲善其事必先利其器.mp4 04.工欲善其事必先利其器.mp4 05.快速导入项目.mp4 06.redis&mysql&rabbitmq配置介绍.mp4 07.nacos配置和启动.mp4 08.nacos配置导入.mp4 09.seata配置和启动.mp4 10.zuihou-admin-cloud启动.mp4 11.zuihou-monitor介绍&网关介绍.mp4 12.zipkin启动.mp4 13.zipkin补充.mp4 14.zipkin通过WEB方式传输.mp4 15.zuihou-ui前端配置讲解&启动.mp4 16.zuihou-ui前端启动&系统功能介绍.mp4 17.文件下载&预览讲解.mp4 18.4种租户模式如何切换.mp4 19.zuihou-admin-boot项目启动&前端项目路由代理配置修改.mp4 20.自定义序列化&反序列化规则细节讲解.mp4 21.自定义TypeHandler.mp4 22.自定义TypeHandler补充.mp4 23.Wraps增强功能.mp4 24.swagger文档调试技巧.mp4 25.批量修改项目名&包名.mp4 26.批量修改项目名&包名——启动验证.mp4 27.各个服务和模块的分层原理.mp4 28.zuihou-core讲解1.mp4 29.zuihou-core讲解2.mp4 30.zuihou-boot模块base包讲解.mp4 31.zuihou-boot模块boot包讲解.mp4 32.zuihou-cache-starter讲解.mp4 33.zuihou-cloud-starter配置类讲解.mp4 34.zuihou-cloud-starterFeignClient传递日期类型参数.mp4 35.zuihou-cloud-starterFeignClient传递请求头和线程变量.mp4 36.zuihou-cloud-starter全局Fallback.mp4 37.zuihou-cloud-starterRestTemplate使用.mp4 38.zuihou-cloud-starter自定义负载均衡策略实现灰度发布.mp4 39.zuihou-jobs-server单机模式介绍.mp4 40.zuihou-jobs-server分布式模式介绍.mp4 41.zuihou-databases讲解1.mp4 42.zuihou-databases讲解2.mp4 43.zuihou-databases动态数据源模式源码分析&Debug技巧&实现原理.mp4 44.zuihou-databasesSCHEMA模式Debug技巧&实现原理.mp4 45.zuihou-databasesCOLUMN模式实现原理.mp4 46.zuihou-databasesSuperMapper新增方法使用介绍.mp4 47.zuihou-databases自定义类型处理器介绍.mp4 48.zuihou-databasesLbqWrapper行政方法介绍.mp4 49.zuihou-databasesMapper\_包下base和ext的区别.mp4 50.zuihou-databases数据权限使用介绍.mp4 51.zuihou-databases分布式事务使用介绍.mp4 52.zuihou-dozer-starter使用介绍.mp4 52.zuihou-mq-starter介绍.mp4 53.zuihou-injection-starter自动注入使用原理.mp4 54.zuihou-j2cache-starter常用API介绍.mp4 55.zuihou-j2cache-stater修改序列化方式.mp4 56.zuihou-j2cache-stater调整配置只使用1级缓存.mp4 57.zuihou-j2cache-stater调整2级缓存配置.mp4 58.zuihou-jwt-starterJWT使用介绍.mp4 59.zuihou-log-starter操作日志注解使用和原理.mp4 60.zuihou-log-starter全局logback配置文件.mp4 61.zuihou-log-starterMDC介绍.mp4 62.zuihou-security-starter认证模块介绍.mp4 63.zuihou-security-starter认证模块使用演示.mp4 64.zuihou-swagger-starter使用介绍.mp4 65.zuihou-swagger配置文件详解.mp4 66.zuihou-security-stater在zuihou-ui进行URI权限分配.mp4 67.zuihou-validator-stater使用介绍.mp4 68.zuihou-xss-stater介绍.mp4 69.大文件上传介绍.mp4 70.zuihou-cloud-plus介绍.mp4 71.zuihou-gateway-server介绍.mp4 72.zuihou-generator新建服务.mp4 73.zuihou-generator生成JAVA代码.mp4 74.zuihou-generator生成前端代码(分页结构).mp4 75.zuihou-generator生成Tree结构页面.mp4