lamp-cloud微服务脚手架的前身是zuihou-admin-cloud,从3.0.0版别开端,改名为lamp-cloud,它是lamp项意图其间一员。
lamp-cloud微服务脚手架是一个根据SpringCloud(Hoxton.SR10) + SpringBoot(2.3.10.RELEASE)的SaaS微服务脚手架,具有一致授权、认证后台办理体系,其间包括具有用户办理、资源权限办理、网关API、散布式业务、大文件断点分片续传等多个模块,支撑多业务体系并行开发,能够作为后端服务的开发脚手架。代码简练,架构明晰,合适学习和直接项目中运用。核心技术选用Nacos、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis、SpringBoot、Redis、RibbitMQ等首要结构和中间件。
lamp-cloud微服务脚手架功用:
1、服务注册&发现与调用:
根据Nacos来完成的服务注册与发现,运用运用Feign来完成服务互调, 能够做到运用HTTP恳求长途调用时能与调用本地办法相同的编码体会,开发者彻底感知不到这是长途办法,更感知不到这是个HTTP恳求。
2、服务鉴权:
经过JWT的办法来加强服务之间调度的权限验证,确保内部服务的安全性。
3、负载均衡:
将服务保存的rest进行署理和网关操控,除了往常常常运用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,能够帮咱们进行正常的网关管控和负载均衡。其间扩展和学习国外项意图扩展根据JWT的Zuul限流插件,方面进行限流。
4、熔断机制:
因为采取了服务的散布,为了防止服务之间的调用“雪崩”,选用了Hystrix的作为熔断器,防止了服务之间的“雪崩”。
5、监控:
运用Spring Boot Admin 来监控各个独立Service的运转状况;运用turbine来实时检查接口的运转状况和调用频率;经过Zipkin来检查各个服务之间的调用链等。
6、链路调用监控:
运用Zipkin完成微服务的全链路功用监控, 从全体维度到部分维度展示各项方针,将跨运用的一切调用链功用信息会集展示,可便利衡量全体和部分功用,而且便利找到毛病发生的源头,生产上可极大缩短毛病扫除时刻。有了它,咱们能做到:
恳求链路追寻,毛病快速定位:能够经过调用链结合业务日志快速定位错误信息。 可视化:各个阶段耗时,进行功用剖析。 依靠优化:各个调用环节的可用性、整理服务依靠联系以及优化。 数据剖析,优化链路:能够得到用户的行为途径,汇总剖析运用在许多业务场景。
7、数据权限
运用根据Mybatis的DataScopeInterceptor阻拦器完成了简略的数据权限
8、SaaS(多租户)的无感处理方案
运用Mybatis阻拦器完成对一切SQL的阻拦,修正默许的Schema,然后完成多租户数据阻隔的意图。 而且支撑可插拔。
9、二级缓存
选用J2Cache操作缓存,榜首级缓存运用内存(Caffeine),第二级缓存运用 Redis。 因为很多的缓存读取会导致 L2 的网络成为整个体系的瓶颈,因而 L1 的方针是下降对 L2 的读取次数。 该缓存结构首要用于集群环境中。单机也可运用,用于防止运用重启导致的缓存冷发动后对后端业务的冲击。
10、高雅的Bean转化
选用Dozer组件来对 DTO、DO、PO等目标的优化转化
11、前后端一致表单验证
谨慎的表单验证一般需求 前端+后端一起验证, 但传统的项目,均只能前后端各做一次查验, 后期规矩改动,又得前后端一起修正。 故在hibernate-validator的基础上封装了zuihou-validator-starter起步依靠,供给一个通用接口,能够获取需求校验表单的规矩,然后前端运用后端回来的规矩, 今后若规矩改动,只需求后端修正即可。
12、防跨站脚本进犯(XSS)
经过过滤器对一切恳求中的 表单参数 进行过滤
经过Json反序列化器完成对一切 application/json 类型的参数 进行过滤
13、当时登录用户信息注入器
经过注解完成用户身份注入
14、在线API
因为原生swagger-ui某些功用支撑不行友爱,故选用了国内开源的swagger-bootstrap-ui,并制作了stater,便利springboot用户运用。
15、代码生成器
根据Mybatis-plus-generator自定义了一套代码生成器, 经过装备数据库字段的注释,主动生成枚举类、数据字典注解、SaveDTO、UpdateDTO、表单验证规矩注解、Swagger注解等。
16、守时使命调度器:
根据xxl-jobs进行了功用增强。(如:指守时刻发送使命、执行器和调度器兼并项目、多数据源)
17、大文件/断点/分片续传
前端选用webupload.js、后端选用NIO完成了大文件断点分片续传,发动Eureka、Zuul、File服务后,直接翻开docs/chunkUploadDemo/demo.html即可进行测验。 经测验,本地约束仓库最大内存128M发动File服务,5分钟内能成功上传4.6G+的大文件,正式服耗时则会遭到用户带宽和服务器带宽的影响,时刻比较长。
18、散布式业务
集成了阿里的散布式业务中间件:seata,以 高效 而且对业务 0侵入 的办法,处理 微服务 场景下面对的散布式业务问题。
19、跨表、跨库、跨服务的相关数据主动注入器
用于处理跨表、跨库、跨服务分页数据的特点或单个目标的特点 回显相关数据之痛, 支撑对静态数据特点(数据字典)、动态主键数据进行主动注入。
20、灰度发布
为了处理频频的服务更新上线,版别回退,快速迭代,公司内部协同开发,本项目选用修正ribbon的负载均衡战略来完成来灰度发布。
lamp-cloud 更新日志:
v3.2.4
feat: 发送短信页面,发送状况支撑多选查询
refactor: 标准工作流接口地址和恳求办法
fix: 修正人物id非空判别反常
refactor: PageController query、handler*等办法的优化,使得每个办法责任愈加清晰
feat: 添加cache模块发动加载日志
refactor: 网关添加熔断日志
fix: 去除MioIO的发动默许加载装备
fix: 修正 WriteInterceptor 空指针
fix: 修正一致分页参数处理办法handleFetchParams,挑选了时刻区间参数时,无法传递一般参数的问题
友情链接 | 关于我们 | 下载帮助(?) | 联系我们 | 投诉举报
CopyRight © 2010-2023 这里下载 heredown.com , All Rights Reserved 版权所有 蒙ICP备2023006002号-1 蒙公网安备15052402000135
声明: 本站所有软件和文章来自互联网 如有异议 请与本站联系
声明: