评论删除后,数据将无法恢复
微服务脚手架
zuihou-admin-cloud
国
zuihou-admin-cloud是一个基于SpringCloud(Greenwich.RELEASE) + SpringBoot(2.1.2.RELEASE) 的SaaS微服务脚手架,具备用户管理、资源权限管理、网关API、分布式事务、Xss防跨站攻击、自动代码生成、大文件断点分片续传等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis、SpringBoot、Redis、等主要框架和中间件。
功能
- 服务注册与调用:
基于Eureka来实现的服务注册与调用,在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。
- 服务鉴权:
通过JWT的方式来加强服务之间调度的权限验证,保证内部服务的安全性。
- 负载均衡:
将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和rebbion,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件,方面进行限流。
- 熔断机制:
因为采取了服务的分布,为了避免服务之间的调用“雪崩”,采用了Hystrix的作为熔断器,避免了服务之间的“雪崩”。
- 监控:
利用Spring Boot Admin 来监控各个独立Service的运行状态;利用turbine来实时查看接口的运行状态和调用频率;通过Zipkin来查看各个服务之间的调用链等。
- 数据权限
利用基于Mybatis的DataScopeInterceptor拦截器实现了简单的数据权限
-
SaaS的无感解决方案
使用Mybatis拦截器实现对所有SQL的拦截,修改默认的Schema,从而实现多租户数据隔离的目的。
-
二级缓存
采用J2Cache操作缓存,第一级缓存使用内存(Caffeine),第二级缓存使用 Redis。 由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读取次数。 该缓存框架主要用于集群环境中。单机也可使用,用于避免应用重启导致的缓存冷启动后对后端业务的冲击。
-
优雅的Bean转换
采用Dozer组件来对 DTO、DO、PO等对象的优化转换
- 前后端统一表单验证
严谨的表单验证通常需要 前端+后端同时验证, 但传统的项目,均只能前后端各做一次检验, 后期规则变更,又得前后端同时修改。 故在hibernate-validator
的基础上封装了zuihou-validator-starter
起步依赖,提供一个通用接口,可以获取需要校验表单的规则,然后前端使用后端返回的规则, 以后若规则改变,只需要后端修改即可。
- 防跨站脚本攻击(XSS)
- 支持JSON入参过滤 + request.getParameter() 的方式过滤
- 当前用户信息注入器
- 在线API
由于原生swagger-ui某些功能支持不够友好,故采用了国内开源的swagger-bootstrap-ui
,并制作了stater,方便springboot用户使用。
- 代码生成器
基于Mybatis-plus-generator自定义了一套代码生成器, 通过配置数据库字段的注释,自动生成枚举类、数据字典注解、SaveDTO、UpdateDTO、表单验证规则注解、Swagger注解等。
- 定时任务调度器:
基于xxl-jobs进行了功能增强。(如:指定时间发送任务、执行器和调度器合并项目、多数据源)
-
汉化 Eureka 注册中心页面 已换成nacos
-
大文件/断点/分片续传
前端采用webupload.js、后端采用NIO实现了大文件断点分片续传,启动Eureka、Zuul、File服务后,直接打开docs/chunkUploadDemo/demo.html即可进行测试。 经测试,本地限制堆栈最大内存128M启动File服务,5分钟内能成功上传4.6G+的大文件,正式服耗时则会受到用户带宽和服务器带宽的影响,时间比较长。
- 分布式事务
集成了阿里的分布式事务中间件:seata,以 高效 并且对业务 0侵入 的方式,解决 微服务 场景下面临的分布式事务问题。
架构图
系统一览
zuihou-admin-cloud 1.0 升级,完善 Gateway 相关功能
# 更新日志: 1, 优化根据ip查询地区的方法 2,增加swagger全局租户参数 3,完善gateway相关核心功能,目前使用gateway能正常登陆和解析token等 4,调整Mybatis拦截器,控制演示环境的写入权...
zuihou-admin-cloud 升级,独立 Schema 的微服务 SaaS 平台
# 更新日志: 1,完善用户中心(修改头像、登录时间、账号信息、修改密码等)相关接口对接 2,完善用户管理的用户信息修改相关接口 3,修复jobs服务启动报错 4,统一jobs服务的logback日志配置...
zuihou-admin-cloud 升级 | 实现数据权限
# 2019年11月26日00:11:56 升级日志 1,同步最新的sql脚本、nacos脚本到源码相应文件中 2,租户运营后台升级: 2.1,租户运营后台新增租户时,对租户编码进行校验 2.2,格式化租户运营后...
没有更多内容
加载失败,请刷新页面
没有更多内容

暂无问答
Spring Cloud Admin 实战 简介 Spring Boot Admin 用于监控基于 Spring Boot 的应用,它是在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI。Spring Boot Admin 提供了很多功能,如...

SpringCloud分布式微服务项目 开源地址:cloud-template 欢迎star支持作者 介绍 旨在提供一个最基础的CRUD模板,并没与太复杂的业务流程,想让初学微服务或者想要找个Vue+Node前后端分离项目...

spring boot admin 2.0,spring boot,spring cloud,eureka

Spring Cloud学习笔记一 随着互联网技术发展,微服务越来越多被企业应用,本文记录一下我的Spring Cloud学习笔记。 Spring Cloud学习之前先学习了Spring Boot项目搭建,然后学习Spring Clou...
Spring Boot Admin简介 Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使...

概述 在我之前的 《Spring Boot应用监控实战》 一文中,讲述了如何利用 Spring Boot Admin 1.5.X 版本来可视化地监控 Spring Boot 应用。说时迟,那时快,现在 Spring Boot Admin 都更新到 ...

参考 in28minutes-initiatives, Java,spring 学习资料 Spring Boot and OAuth2 使用Spring Boot构建独立的OAuth服务器 这个系列文章不错,帮助我理解了 spring boot oauth zuul wiki,begin ...
没有更多内容
加载失败,请刷新页面
评论(5)