RuoYiplus 3.0已经升级,v3.0版本中选择了Gateway做为服务网关。选择以前做者也在经常使用的网关服务Zuul和Gateway之间作徘徊,通过翻阅和搜集一些资料,最终选择了Gateway,那么让咱们看看二者之间的区别和联系吧。git
本文中的zuul,指的是zuul1.x,springcloud暂没有整合zuul2.x的计划,gateway是springcloud重点扶持的子项目,固仅在zuul1.x和gateway作比较。github
Spring Cloud Gateway
- 基本介绍:Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway做为Spring Cloud生态系中的网关,目标是替代Netflix ZUUL,其不只提供统一的路由方式,而且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。
- 性能介绍:WebFlux 模块的名称是 spring-webflux,名称中的 Flux 来源于 Reactor 中的类 Flux。Spring webflux 有一个全新的非堵塞的函数式 Reactive Web 框架,能够用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现很是好。使用非阻塞API。 Websockets获得支持,而且因为它与Spring紧密集成,因此将会是一个更好的 开发 体验。
- 源码维护组织:spring-cloud-Gateway是spring旗下spring-cloud的一个子项目。还有一种说法是由于zuul2连续跳票和zuul1的性能表现不是很理想,因此催生了spring孵化Gateway项目。
Zull
- 基本介绍:Zuul1是基于 Servlet 2.5,兼容 3.x开发的网关,本质上也是一个web servlet应用。 Zuul提供了动态路由、监控、弹性负载和安全功能 。
- 性能介绍:Zuul1采用的是阻塞和多线程方式,即一个线程处理一次链接请求,这种方式在内部延迟严重、设备故障较多状况下会引发存活的链接增多和线程增长的状况发生。Zuul已经发布了Zuul 2.x,基于Netty,也是非阻塞的,支持长链接,但Spring Cloud暂时尚未整合计划。
- 源码维护组织:zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已。关键目前spring不打算集成zuul2.x。
RuoYiPlus开源
本项目由 SMP 多商户权限管理系统 + API 接口服务组成,是在开源项目 RuoYi4.0(若依) 的基础上升级调整的微服务体系,项目基于 SpringBoot2.x,springcloudG 版本 eureka、hystrix、feign、config、gateway 微服务架构,集成 redis、tk.mybatis、lombok、各类设计模式等,是可选性后台管理系统或后端web
接口服务。redis
源码地址spring
- Gitee(主):https://gitee.com/aimeng2017/RuoYi-plus
- Github(辅):https://github.com/zebra-ruoyi-plus/ruoyi-plus