lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020

栏目: 软件资讯 · 发布时间: 3年前

内容简介:3.3.0 版本,升级至SpringBoot2.5.3 SpringCloud 2020 更新详情: build: 依赖升级 spring.boot.version > 2.5.3 spring.cloud.version > 2020.0.3 spring-cloud-alibaba-dependencies.version > 2021.1 se...

3.3.0 版本,升级至SpringBoot2.5.3 SpringCloud 2020 更新详情:

build: 依赖升级


spring.boot.version > 2.5.3
spring.cloud.version > 2020.0.3
spring-cloud-alibaba-dependencies.version > 2021.1
sentinel.version > 1.8.2
qiniu.version > 7.8.0
hutool.version > 5.7.5
minio.version > 8.2.2

feat: 新功能

  • 废弃 zipkin-client
  • 废弃 hystrix 改用 sentinel
  • 用 spring-cloud-starter-loadbalancer 代替 ribbon
  • 文件中心新增支持 七牛云OSS、 华为云OSS
  • 新增附件sdk lamp-file-sdk, 用于业务表保存、查询业务附件
  • 短信模板配置 和 短信任务发送 支持创蓝短信商
  • 同一个前端表单有多个查询同样数据源的ApiSelect组件时,只发起一次请求。
  • 后端获取枚举接口改为启动时,采用静态扫描方式。
  • 新增ClassUtils工具类,提供批量静态扫描源码以及jar中指定包下的class类,且支持通配符和分隔符。
  • 集合 工具 类CollHelper新增 List 转 MultiMap 的方法
  • 枚举接口 BaseEnum 新增扩展接口 getExtra,并调整枚举序列化类EnumSerializer,使得实现了BaseEnum的类字段能返回extra属性
  • xss 支持过滤 embed、objec、meta、link、expression、vbscript等标签 @杨慕义

refactor: 重构优化

  • lamp-cloud-starter 灰度策略组件重写
  • FeignClient 全局 fallback处理器重写
  • yml中配置的灰度发布元数据参数 grayversion 改为 gray_version, 并支持通过配置文件指定是否启用
  • 重构短信动态参数解析正则表达式,由原map结构改成list结构, 兼容创蓝、腾讯云等顺序参数和相同变量名参数。
  • 完全重构文件中心,支持同时启用 本地、FastDFS、MinIO、阿里云、七牛云、华为云混合上传。并支持上传时由客户端(前端)指定选择存储类型
  • 文件中心废弃 c_attachment 表,新增 c_file(文件上传记录) 表,所有业务服务新增 c_appendix (业务附件表)
  • minio docker脚本适配最新版
  • 调整租户管理页面租户头像字段,适配新的附件上传流程
  • 调整附件管理页面,适配新的附件上传流程
  • 调整消息中心富文本编辑框,适配新的附件上传接口
  • 调整oauth服务的 enumLists 接口为 enumList
  • 优化网关swagger聚合文档类:SwaggerResourceConfig, 只从已正常运行的服务中获取文档。

fix: 修复

  • 修复NONE模式,无法登录的问题
  • 获取枚举接口,错误的返回文件中心的枚举值
  • 修复在线用户接口,可以查到所有租户的在线用户

 

《灯灯》中后台快速开发平台

lamp 项目组成

1) 工具集 (lamp-util 项目必备,其他2个可选)

项目 gitee github 备注
工具集 lamp-util lamp-util 业务无关的工具集,cloud和boot 项目都依赖它
代码生成器 lamp-generator lamp-generator 给开发人员使用
定时调度器 lamp-job lamp-job 尚未开发

2) 后端 (下面2个项目功能一致,任选其一即可)

项目 gitee github 备注
微服务版 lamp-cloud lamp-cloud SpringCloud 版
单体版 lamp-boot lamp-boot SpringBoot 版(和lamp-cloud功能基本一致)
示例项目 lamp-samples lamp-samples 微服务版的示例功能

 3) 前端 (下面3个项目功能一致,任选其一即可)

项目 gitee github 备注
租户后台 lamp-web lamp-web 基于vue-admin-element开发 (vue2.x)
租户后台 lamp-web-beautiful lamp-web-beautiful 基于vue-admin-beautiful开发 (vue2.x)
租户后台 (强烈推荐!????????????) lamp-web-plus lamp-web-plus 基于vue-vben-admin开发 (vue3.x)

如果你非要说lamp是Linux+Apache+MySQL+PHP,那就算是吧,毕竟 PHP 是世界上最好的语言,我也希望此项目成为世界上最好的后台框架!????????????

lamp-cloud 简介

lamp-cloud的前身是zuihou-admin-cloud,从3.0.0版本开始,改名为lamp-cloud,它是lamp项目的其中一员。

lamp-cloud 基于 jdk11/jdk8 + SpringCloud(2020.0.3) + SpringCloudAlibaba(2021.1)+ SpringBoot(2.5.3) 的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。

核心技术采用Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中间件。 希望能努力打造一套从 JavaWeb基础框架 - 分布式微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。

lamp 租户模式介绍

本项目可以通过配置,轻松切换项目的 多租户实现方式

租户模式 描述 优点 缺点
NONE(非租户模式) 没有租户 简单、适合独立系统 缺少租户系统的优点
COLUMN(字段模式) 租户共用一个数据库,在业务表中增加字段来区分 简单、不复杂、开发无感知 数据隔离性差、安全性差、数据备份和恢复困难、
SCHEMA(独立数据库) 每个租户独立一个 数据库(schema),执行 sql 时,动态在表名前增加schema 简单、开发无感知、数据隔离性好 配置文件中必须配置数据库的root账号、不支持复杂sql和 sql嵌套自定义函数
DATASOURCE(独立数据源) 每个租户独立一个数据源,执行代码时,动态切换数据源 可独立部署数据库,数据隔离性好、扩展性高、故障影响小 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库
SCHEMA_COLUMN(独立数据库+字段模式) 每个租户独立一个 数据库,执行代码时,先动态切换数据源,在动态拼接 子租户id进行二次隔离 简单、开发无感知、数据隔离性好、支持大租户小门店形式 配置文件中必须配置数据库的root账号、不支持复杂sql和 sql嵌套自定义函数
DATASOURCE_COLUMN(独立数据源+字段模式) 每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源,在动态拼接 子租户id 二次隔离 可独立部署数据库,数据隔离性好、扩展性高、故障影响小、支持大租户小门店形式 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库

lamp 项目演示地址 

  •   后端使用lamp-cloud-plus,前端使用lamp-web-plus。演示地址: https://tangyh.top
  •   后端使用lamp-cloud-plus,前端使用lamp-web。演示地址: https://tangyh.top/lamp-web
  •   后端使用lamp-boot-plus, 前端使用lamp-web-plus。演示地址: https://boot.tangyh.top
  •   后端使用lamp-boot-plus, 前端使用lamp-web。演示地址: https://boot.tangyh.top/lamp-web    

演示地址账号:

  • 平台管理员: lamp_pt/lamp (内置给公司内部运营人员使用)
  • 超级管理员: lamp/lamp
  • 普通管理员: general/lamp
  • 普通账号: normal/lamp

ps: 演示环境中内置租户没有写入权限,若要在演示环境测试增删改,请使用lamp_pt账号查询租户管理员账号后,登录新租户测试

lamp-cloud 项目亮点功能介绍:

  1. 服务鉴权:

    通过JWT的方式来加强服务之间调度的权限验证,保证内部服务的安全性。

  2. 监控:

    利用Spring Boot Admin 来监控各个独立Service的运行状态;利用turbine来实时查看接口的运行状态和调用频率;通过Zipkin来查看各个服务之间的调用链等。

  3. 链路调用监控:

    同时实现了Zipkin和SkyWalking作为本项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。

  4. 数据权限

    利用基于Mybatis的DataScopeInnerInterceptor拦截器实现了数据权限功能

  5. SaaS(多租户)的无感解决方案

    本项目支持6种常见的租户解决方案和无租户方案,同一套代码,修改一个配置即可实现租户模式只有切换。

  6. 缓存抽象

    采用CacheOps操作缓存,内置2种实现:Caffeine、 Redis,可以让项目应急时在无 Redis 环境正常运行

  7. 优雅的Bean转换

    采用Dozer、BeanUtil等组件来对 DTO、DO、PO等对象的优化转换

  8. 前后端统一表单验证

    严谨的表单验证通常需要 前端+后端同时验证, 但传统的项目,均只能前后端各做一次检验, 后期规则变更,又得前后端同时修改。 故在hibernate-validator的基础上封装了lamp-validator-starter起步依赖,提供一个通用接口,可以获取需要校验表单的规则,然后前端使用后端返回的规则, 以后若规则改变,只需要后端修改即可。

  9. 防跨站脚本攻击(XSS)

    • 通过过滤器对所有请求中的 表单参数 进行过滤
    • 通过Json反序列化器实现对所有 application/json 类型的参数 进行过滤
  10. 当前登录用户信息注入器

    • 通过注解实现用户身份注入
  11. 在线文档

    由于原生swagger-ui某些功能支持不够友好,故采用了国内开源的knife4j,并制作了stater,方便springboot用户使用。

  12. 代码生成器

    基于Mybatis-plus-generator自定义了一套代码生成器, 通过配置数据库字段的注释,自动生成枚举类、数据字典注解、SaveDTO、UpdateDTO、表单验证规则注解、Swagger注解等。

  13. 定时任务调度器

    基于xxl-jobs进行了功能增强。(如:指定时间发送任务、执行器和调度器合并项目、多数据源)

  14. 大文件/断点/分片续传

    前端采用webupload.js、后端采用NIO实现了大文件断点分片续传,启动Eureka、Zuul、File服务后,直接打开docs/chunkUploadDemo/demo.html即可进行测试。 经测试,本地限制堆栈最大内存128M启动File服务,5分钟内能成功上传4.6G+的大文件,正式服耗时则会受到用户带宽和服务器带宽的影响,时间比较长。

  15. 分布式事务

    集成了阿里的分布式事务中间件:seata,以 高效 并且对业务 0侵入 的方式,解决 微服务 场景下面临的分布式事务问题。

  16. 跨表、跨库、跨服务的关联数据自动注入器

    用于解决跨表、跨库、跨服务分页数据的属性或单个对象的属性 回显关联数据之痛, 支持对静态数据属性(数据字典)、动态主键数据进行自动注入。

  17. 灰度发布

    为了解决频繁的服务更新上线,版本回退,快速迭代,公司内部协同开发,本项目采用修改ribbon的负载均衡策略来实现来灰度发布。

lamp-cloud 技术栈/版本介绍:

  • 所涉及的相关的技术有:
    • 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

项目截图:

预览 预览
lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020 lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020
lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020 lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020
lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020 lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020
lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020 lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020
lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020 lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020
lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020 lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020

以上所述就是小编给大家介绍的《lamp-cloud 3.3.0 发布,Spring Boot 2.5.3 & Spring Cloud 2020》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入React技术栈

深入React技术栈

陈屹 / 人民邮电出版社 / 2016-11-1 / CNY 79.00

全面讲述React技术栈的第一本原创图书,pure render专栏主创倾力打造 覆盖React、Flux、Redux及可视化,帮助开发者在实践中深入理解技术和源码 前端组件化主流解决方案,一本书玩转React“全家桶” 本书讲解了非常多的内容,不仅介绍了面向普通用户的API、应用架构和周边工具,还深入介绍了底层实现。此外,本书非常重视实战,每一节都有实际的例子,细节丰富。我从这......一起来看看 《深入React技术栈》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具