zuihou-admin-cloud 1.0 升级,完善 Gateway 相关功能
# 更新日志:
1, 优化根据ip查询地区的方法
2,增加swagger全局租户参数
3,完善gateway相关核心功能,目前使用gateway能正常登陆和解析token等
4,调整Mybatis拦截器,控制演示环境的写入权限控制。防止数据被 乱删乱改。 想要在演示环境测试增删改功能的, 请新增租户和账号后测试
5,zuihou-admin-cloud的兄弟项目:zuihou-admin-boot 初次提交,是在本项目基础上去除微服务部分。 目的:简化开发、部署、方便小型项目快速建站。 地址: https://github.com/zuihou/zuihou-admin-boot
# 功能点介绍:
- 服务注册与调用:
基于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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
你知道你对 JSON Web Token 的认识存在误解吗
1.前言 JSON Web Token (JWT) 其实目前已经广为软件开发者所熟知了,但是 JOSE (Javascript Object Signing and Encryption) 却鲜有人知道,我第一次知道它是在 Spring Security 的官方文档中,它改变了我对 JWT 的一些认识。目前国内能找到相关中文资料不是太多。所以我觉得有必要归纳一下。 2. JOSE 概述 JOSE 是一种旨在提供在各方之间安全传递声明(claims)的方法的规范集。我们常用的 JWT 就包含了允许客户端访问特定应用下特定资源的声明。JOSE 制定了一系列的规范来达到此目的。目前该规范还在不断的发展,我们常用的包含以下几个 RFC : JWS(RFC 7515) -JSON Web签名,描述生成和处理签名消息 JWE(RFC 7516) -JSON Web加密,描述了保护和处理加密 消息 JWK(RFC 7517) -JSON Web密钥,描述 Javascript 对象签名和加密中加密密钥的 格式和处理 JWA(RFC 7518) -JSON Web算法,描述了 Javascript 对...
- 下一篇
JFinal 版微信 wap 应用网红口红机 joytur 发布
年初 微信口红机非常火,当时微信上到处小程序wap玩这游戏玩的不亦乐乎 看到大家都赚的盘满砵满,买一个程序都是大几千到上万元的,楼主网上搜啊搜想搜一个java开源版的搜了几天硬是没有一个开源的php都是那么多. 就想着计划自己一个月写一个出来,技术就选择轻巧开源的jfinal,因为服务器资源是在有限 选择找jfinal开源基础框架作为脚手架!,取个名字叫欢乐转盘吧. joytur(欢乐转盘) joytur是在Jfinal undertow 1.6 基础上搭建的一个Java项目 简单易学,学习成本低 内置封装很多轻巧组件,异常统一处理组件,异步任务统一处理,权限控制组件,validate注解验证组件,日志记录管理组件. 模块化设计,层次结构清晰,支持h2,mysql数据库,支持自动创建并初始化数据库 本项目是学习Jfinal快速开发最佳学习案例! 最低性能可以达到1核512M运行JAVA应用. 项目参考很多优秀开源项目优点并且集合优点,可以找到影子, 目前包括以下四个模块 系统管理(system)模块、微信管理(wechat)模块、产品管理(product)模块、订单管...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装