微服务脚手架 zuihou-admin-cloud

Apache
Java
跨平台
2019-11-21
最后_

【年终提升】2019尾声,来 OSC·年终盛典收割技术干货,get新技能!>>>

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侵入 的方式,解决 微服务 场景下面临的分布式事务问题。

架构图

系统一览

 

 

的码云指数为
超过 的项目
加载中

评论(11)

陈海
支持
少年程序员
支持 刚刚好 要用springcloud做项目
无知有趣
无知有趣
一堆配置看起来发懵,门槛还是比较高的
帕斯卡
帕斯卡
微服务还是要点积累才好上手的
无知有趣
无知有趣
zuihou名字何解?
柴门
柴门
最后……
欧阳667
不错1
赵伟伟
赵伟伟
还不错,脚手架
兜兜兜兜兜兜兜兜
兜兜兜兜兜兜兜兜
支持
yong230
yong230
支持一下
最后_
最后_ 软件作者
感谢支持

zuihou-admin-cloud 1.5 发布,跨库跨服务数据聚合组件

节前最后一次发布,祝大家新年快乐~~~ 今日更新日志: 0,定时任务 增加重置演示环境数据功能 1,完善地区相关接口,并优化地区表结构 2,对接 地区 相关前端页面 3,新增 数据字典相关方法 ...

前天 10:02

zuihou-admin-cloud 1.4 发布, 接入 zipkin-server 2.19.2

更新日志: 1. 升级 zipkin-server 到 2.19.2 ,并修改项目配置,使得兼容新版本,并完善使用文档 2. 代码生成器 增加 创建新服务 的功能 3. 代码生成器 支持实体中id字段名称任意命名,且不强...

01/16 10:56

zuihou-admin-cloud 1.3 发布, 多租户模式可自由切换

更新日志: 1. 完善数据字典相关接口对接 2. 重构数据源配置 BaseDbConfiguration 3. 让项目的租户模式变成自由切换(包括 zuihou-ui 支持配置) (通过配置文件的参数修改即可) 4. 解决 p6...

01/09 09:40

zuihou-admin-cloud 1.2 发布 , 独立 Schema 的多租户微服务脚手架

更新日志: 1,完善系统API&应用模块表结构、前后端对接等 2,操作日志中模块描述记录得更加人性化 3,优化&修复 前后端项目bug、代码功能不健全、命名不规范等若干 4,消息中心接口完善&前后...

01/03 08:53

zuihou-admin-cloud 1.1 发布 , 独立Schema的多租户微服务脚手架

# 更新日志: 1, 删除 原服务表以及相关代码,重新思考系统中 API 接口的实现方案。 2,新增 系统api接口表、应用-系统api 关联表 以及相关接口, 用于外部应用的api授权 3,修改 应用表相关...

2019/12/18 09:53

zuihou-admin-cloud 1.0 升级,完善 Gateway 相关功能

# 更新日志: 1, 优化根据ip查询地区的方法 2,增加swagger全局租户参数 3,完善gateway相关核心功能,目前使用gateway能正常登陆和解析token等 4,调整Mybatis拦截器,控制演示环境的写入权...

2019/12/05 09:46

zuihou-admin-cloud 升级,独立 Schema 的微服务 SaaS 平台

# 更新日志: 1,完善用户中心(修改头像、登录时间、账号信息、修改密码等)相关接口对接 2,完善用户管理的用户信息修改相关接口 3,修复jobs服务启动报错 4,统一jobs服务的logback日志配置...

2019/12/02 14:51

zuihou-admin-cloud 升级 | 实现数据权限

# 2019年11月26日00:11:56 升级日志 1,同步最新的sql脚本、nacos脚本到源码相应文件中 2,租户运营后台升级: 2.1,租户运营后台新增租户时,对租户编码进行校验 2.2,格式化租户运营后...

2019/11/26 11:21

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

5月17

第一篇因为5块钱而写的博客! 这是我今天拼搏了两个小时写的考试的代码,主要是实在不知道要写些啥子..... <!DOCTYPE html> <html> <head> <title>Test</title> <meta charset="UTF-8"> <style...

2013/05/17 23:16
25
0
Spring Cloud Admin 实战

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

2019/04/22 22:17
1.2K
0
基于SpringCloud+Vue开发的一套极简的分布式微服务项目

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

2019/05/31 19:46
178
0
spring boot admin 2.0结合eureka监控spring boot服务

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

2018/06/06 15:07
6.4K
0
Spring Cloud学习笔记一

Spring Cloud学习笔记一 随着互联网技术发展,微服务越来越多被企业应用,本文记录一下我的Spring Cloud学习笔记。 Spring Cloud学习之前先学习了Spring Boot项目搭建,然后学习Spring Clou...

2018/05/31 14:03
16
0
Spring Boot Admin 2.1.0 全攻略

Spring Boot Admin简介 Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使...

2019/04/29 09:43
37
1
Spring Boot Admin 2.0开箱体验

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

2018/10/25 13:47
54
0
spring cloud 资料

参考 in28minutes-initiatives, Java,spring 学习资料 Spring Boot and OAuth2 使用Spring Boot构建独立的OAuth服务器 这个系列文章不错,帮助我理解了 spring boot oauth zuul wiki,begin ...

2018/02/03 15:31
205
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部
天津时时彩