RuoYi-plus3.0已经升级,v3.0版本中选择了Gateway作为服务网关。选择之前作者也在常用的网关服务Zuul和Gateway之间做徘徊,经过翻阅和搜集一些资料,最终选择了Gateway,那么让我们看看两者之间的区别和联系吧。
本文中的zuul,指的是zuul1.x,springcloud暂没有整合zuul2.x的计划,gateway是springcloud重点扶持的子项目,固仅在zuul1.x和gateway做比较。
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是基于 SServlet 2.5,兼容 3.x开发的网关,本质上也是一个web servlet应用。 Zuul提供了动态路由、监控、弹性负载和安全功能 。
- 性能介绍:Zuul1采用的是阻塞和多线程方式,即一个线程处理一次连接请求,这种方式在内部延迟严重、设备故障较多情况下会引起存活的连接增多和线程增加的情况发生。Zuul已经发布了Zuul 2.x,基于Netty,也是非阻塞的,支持长连接,但Spring Cloud暂时还没有整合计划。
- 源码维护组织:zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已。关键目前spring不打算集成zuul2.x。
来源:oschina
链接:https://my.oschina.net/u/4161734/blog/3191521