微服务开发脚手架SpringBlade

SpringBlade是一个由商业级项目升级优化而来的微服务架构,以下是对SpringBlade的详细介绍:

一、技术背景与特点

  1. 技术栈:SpringBlade采用Spring Boot、Spring Cloud等核心技术构建,同时集成了MyBatis Plus、Shiro等多种常用组件。这些技术都是当前Java开发领域的主流技术,为SpringBlade提供了强大的技术支持。
  2. 前后端分离:SpringBlade采用前后端分离的模式,前端提供了基于React和Vue的两个框架,用于快速搭建企业级的SaaS多租户微服务平台。这种分离的模式使得前后端可以独立开发、部署和扩展,提高了系统的灵活性和可维护性。
  3. 微服务架构:SpringBlade支持微服务架构,通过Spring Cloud实现服务发现、负载均衡、配置中心等功能,适应现代分布式系统的开发需求。
  4. 安全性:SpringBlade集成了Sentinel等组件,从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性。同时,它还借鉴了OAuth2和Security等技术,自研了多终端认证系统和Secure模块,采用JWT做Token认证,确保了系统的安全性。

二、项目结构与模块

SpringBlade的项目结构清晰,分包明确,规范了微服务的开发模式。它主要包括以下几个模块:

  1. blade-auth:授权服务提供模块,负责用户的认证和授权。
  2. blade-common:常用工具封装包,提供了一些通用的工具类和组件。
  3. blade-gateway:Spring Cloud网关模块,负责请求的路由和转发。
  4. blade-ops:运维中心模块,提供了系统监控、日志管理等功能。
  5. blade-admin:spring-cloud后台管理模块,用于管理系统的后台配置和监控。
  6. blade-develop:代码生成模块,通过配置可以自动生成前后端代码,提高开发效率。
  7. blade-resource:资源管理模块,用于管理系统的各种资源。
  8. blade-service:业务模块,包含了系统的核心业务逻辑。
  9. blade-desk:工作台模块,提供了用户的工作台界面。
  10. blade-log:日志模块,用于记录系统的运行日志。
  11. blade-system:系统模块,包含了系统的基本设置和管理功能。

此外,SpringBlade还提供了各个模块的API封装,如blade-service-api、blade-desk-api等,方便开发者进行接口调用和数据交互。

三、应用场景与优势

  1. 应用场景:SpringBlade适用于中大型项目的初始化模板和微服务治理。它可以帮助开发者更快地启动和管理他们的项目,尤其适用于大型企业的复杂业务场景。

  2. 优势

    • 易用性:通过预定义的模板和配置,大大降低了项目初始化的难度。
    • 灵活性:允许自定义扩展,满足不同企业的特定需求。
    • 可维护性:遵循最佳实践的代码结构,易于理解和维护。
    • 高效率:集成大量常用工具库,减少重复造轮子的时间成本。
    • 社区活跃:拥有活跃的开发者社区,能够及时获取问题解答和技术更新。

四、开源与社区

SpringBlade是一个开源项目,你可以在Gitee和GitHub等代码托管平台上找到它的源码和相关信息。同时,SpringBlade也拥有一个活跃的开发者社区,社区中提供了详尽的API文档和实战示例,方便开发者学习和使用。此外,社区还提供了问答社区和交流群等渠道,方便开发者之间进行交流和协作。

综上所述,SpringBlade是一个强大且全面的企业级开发框架,它致力于简化Spring Boot的使用并提高开发效率。无论你是初学者还是经验丰富的开发者,都可以从中受益。

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、大文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

研创通之逍遥峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值