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

栏目: 软件资讯 · 发布时间: 5年前

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

# 更新日志:

1, 删除 原服务表以及相关代码,重新思考系统中 API 接口的实现方案。
2,新增 系统api接口表、应用-系统api 关联表 以及相关接口, 用于外部应用的api授权
3,修改 应用表相关字段,并重新生成代码
4,新增 zuihou-scan-starter 起步依赖模块,实现自动扫描服务的所有api接口, 并提供2种远程调用权限服务持久化的方式(feign or rabbitmq)
5,升级 swagger-bootstrap-ui 1.9.6 为 knife4j 2.0.0  
6,兄弟项目:zuihou-admin-boot 完成权限、消息、文件服务的代码合并,并改在原来的拦截器,实现网关过滤器的解析token功能,并成功对接现有的前端项目。

# 功能点介绍:

  • 服务注册与调用:

基于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):
  • 当前用户信息注入器:
  • 在线API:

由于原生swagger-ui某些功能支持不够友好,故采用了国内开源的`swagger-bootstrap-ui`,并制作了stater,方便springboot用户使用。

  • 代码生成器:

基于Mybatis-plus-generator自定义了一套代码生成器, 通过配置数据库字段的注释,自动生成枚举类、数据字典注解、SaveDTO、UpdateDTO、表单验证规则注解、Swagger注解等。

  • 定时任务调度器:

基于xxl-jobs进行了功能增强。(如:指定时间发送任务、执行器和调度器合并项目、多数据源)

  • 汉化 Eureka 注册中心页面:

请切换分支进行查看

  • 大文件/断点/分片续传:

前端采用webupload.js、后端采用NIO实现了大文件断点分片续传,启动Eureka、Zuul、File服务后,直接打开docs/chunkUploadDemo/demo.html即可进行测试。 经测试,本地限制堆栈最大内存128M启动File服务,5分钟内能成功上传4.6G+的大文件,正式服耗时则会受到用户带宽和服务器带宽的影响,时间比较长。

  • 分布式事务:

集成了阿里的分布式事务中间件:seata,以 **高效** 并且对业务 **0侵入** 的方式,解决 微服务 场景下面临的分布式事务问题。

 

# 项目代码地址

微服务后端 代码:

[gitee] https://gitee.com/zuihou111/zuihou-admin-cloud /[github] https://github.com/zuihou/zuihou-admin-cloud

租户系统 代码:

[gitee] https://gitee.com/zuihou111/zuihou-ui / [github] https://github.com/zuihou/zuihou-ui

开发&运营管理系统 代码:

[gitee] https://gitee.com/zuihou111/zuihou-admin-ui / [github] https://github.com/zuihou/zuihou-admin-ui

[代码生成器] https://github.com/zuihou/zuihou-generator

 

# 演示地址 (演示账号没有写权限,只能查询)

[租户系统演示环境] http://tangyh.top:10000/zuihou-ui/

平台管理员账号/密码: zuihou/zuihou

普通用户账号/密码: test/zuiou

[开发&运营平台演示环境] http://tangyh.top:180/zuihou-admin-ui/

账号/密码: demoAdmin/zuihou


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Nature of Code

The Nature of Code

Daniel Shiffman / The Nature of Code / 2012-12-13 / GBP 19.95

How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital w......一起来看看 《The Nature of Code》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码