软件介绍
lamp-cloud免费版是一个支持jdk11的微服务快速开发平台。我们的用户可以使用lamp-cloud正式版完成网站多服务系统的并行开发,让您在最短的时间内完成网站开发设计。
云免费版软件功能
1.租户管理:操作员管理所有租户创建。2.工作台:普通用户的常用功能。
3.组织管理:组织、职位、用户数据维护、重置用户密码等。
4.资源中心:管理消息、短信和附件。
5.流程管理:流程部署、模型管理和流程示例。
6.系统设置:菜单、资源配置、角色管理、将用户绑定到角色、将菜单和资源授权到角色、字典、区域、系统参数、操作日志、登录日志、应用管理等。
7.网关设置:电流限制和访问块。
8.开发者管理:规划任务、界面文档、注册和配置中心、服务监控、数据库监控、zipkin监控和SkyWalking监控。
软件功能
服务的注册、发现和调用:基于Nacos的服务注册和发现,使用Feign实现服务互调,可以达到使用HTTP请求远程调用时调用本地方法一样的编码体验。开发人员不知道这是远程方法,更不知道是HTTP请求。
负载平衡:
保留服务的其余部分用于代理和网关控制。除了常用的node.js和nginx,Spring Cloud系列的zuul和ribbon可以帮助我们进行正常的网关控制和负载均衡。其中国外项目的拓展和借鉴是基于JWT的Zuul限流插件,在限流方面。
认证:
JWT用于加强服务间调度的授权验证,确保内部服务的安全性。
熔断机制:
由于服务的分布性,为了避免服务间的呼叫雪崩,使用Hystrix作为保险丝来避免服务间的雪崩。
监控:
使用Spring Boot管理来监控每个独立服务的运行状态;使用turbine实时查看界面的运行状态和调用频率;通过Zipkin检查服务之间的调用链。
链接呼叫监控:
同时实现Zipkin和SkyWalking作为本项目的全链路性能监控。所有指标从全局维度展现到局部维度,集中展现所有跨应用调用链性能信息,可以方便地测量全局和局部性能,找到故障根源,大大缩短生产中的故障排除时间。
数据许可
使用基于Mybatis的DataScopeInnerInterceptor实现数据权限功能。
SaaS(多租户)无意义的解决方案
该项目支持三种普通租户方案和无租户方案。使用相同的代码集,租户模式只能通过修改一个配置来切换。
缓存抽象
采用了CacheOps操作缓存,内置了Caffeine和Redis两个实现,可以使项目在没有Redis的紧急环境下正常运行。
优雅的豆子变换
Dozer、BeanUtil等组件用于优化d到、DO、po等对象的转换。
前端统一表单验证
严格的表单验证通常需要前端和后端验证。传统的物品前后两端只能检查一次,后面的规则变了,两端都要同时修改。所以在hibernate-validator的基础上,封装了lamp-validator-starter启动依赖,提供了一个通用的接口来获取要验证的表单的规则,然后前端使用后端返回的规则。如果将来规则改变了,只需要后端修改。
防跨站点脚本攻击(XSS)
通过筛选器筛选所有请求中的表单参数。
Json反序列化器过滤application /Json类型的所有参数。
当前登录用户信息注入器
通过评论注入用户身份。
在线API
因为原生的swagger-ui有些功能不够友好,所以采用了国产开源的knife4j,并做了stater,方便了springboot的用户。
编码生成器
基于Mybatis-plus-generator定制了一套代码生成器,自动生成枚举类、数据字典注释、SaveDTO、UpdateDTO、表单验证规则注释、Swagger注释等。通过为数据库字段配置注释。
计划任务计划程序:
基于xxl-job的增强功能。(例如,在指定时间发送任务,合并执行程序和调度程序的项目,以及多个数据源)
大文件/断点/片段延续
利用前端的Webupload.js和后端的NIO实现大文件断点续传。启动Eureka、Zuul和文件服务后,可以直接打开docs/chunkupplodemo/demo.html进行测试。经测试,本地极限栈最大内存128M启动文件服务,5分钟内可成功上传4.6G+文件。正式服务的耗时会受到用户和服务器带宽的影响,耗时较长。
分布式交易
本文整合了阿里的分布式事务中间件:seata,以高效、入侵的方式解决微服务场景下的分布式事务问题。
跨表、数据库和服务自动回显相关数据。
它用于解决跨表、数据库和服务回显相关数据或单个对象属性的问题。它支持静态数据属性(数据字典)和动态主键数据的自动注入。
灰度出版
为了解决公司内部频繁在线更新、版本回滚、快速迭代、协同开发等问题,本项目采用了修改ribbon的负载均衡策略,实现了灰度发布。