| 产品 | zuul | gateway |
|---|---|---|
| 开发者 | Netflix的开源产品 | Spring 开源社区 |
| starter | spring-cloud-starter-netflix-zuul | spring-cloud-starter-gateway |
| 底层 | Servlet | Netty |
| 底层特性 | 采用的是阻塞和多线程方式 | 异步非阻塞模型 |
Zuul 是 Netflix 开源的产品,
Spring Cloud Gateway 是 Spring 体系内的产品,和 Spring 体系融合更好。
Zuul1 不支持长连接,比如 WebSockets;
Spring Cloud Gateway 支持 WebSockets 等协议。
作为一个服务网关产品,Spring Cloud Gateway 考虑更全面一些,增加了 Predicate、限流等技术。
Zuul1 是基于 Servlet 框架构建,采用的是阻塞和多线程方式,即一个线程处理一次连接请求,这种方式在内部延迟严重、设备故障较多情况下会引起存活的连接增多和线程增加的情况发生。
Spring Cloud Gateway 基于 Spring 5.0、Spring Boot 2.0 和 Project Reactor 开发,采用了 Netty 实现了异步非阻塞模型,占用资源更小,在性能方面更有优势。
综合比较,Spring Cloud Gateway 在使用效率和性能方面更好一些,可以预期未来 Spring Cloud GateWay 的使用率会越来越高。
————————————————
版权声明:本文为优快云博主「代码忘烦恼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qwe86314/article/details/100604099
1、开源组织
Spring Cloud Gateway 是 Spring Cloud 微服务平台的一个子项目,属于 Spring 开源社区,依赖名叫:spring-cloud-starter-gateway。
https://spring.io/projects/spring-cloud-gateway
Zuul 是 Netflix 公司的开源项目,Spring Cloud 在 Netflix 项目中也已经集成了 Zuul,依赖名叫:spring-cloud-starter-netflix-zuul。
https://github.com/Netflix/zuul
2、底层实现
https://stackoverflow.com/questions/47092048/how-is-spring-cloud-gateway-different-from-zuul
据 Spring Cloud Gateway 原作者的解释:
Zuul构建于 Servlet 2.5,兼容 3.x,使用的是阻塞式的 API,不支持长连接,比如 websockets。另外
Spring Cloud Gateway构建于 Spring 5+,基于 Spring Boot 2.x 响应式的、非阻塞式的 API。同时,它支持 websockets,和 Spring 框架紧密集成,开发体验相对来说十分不错。
3、性能表现
这个没什么好比的,要比就和 Zuul 2.x 比,Zuul 2.x 在底层上有了很大的改变,使用了异步无阻塞式的 API,性能改善明显,不过现在 Spring Cloud 也没集成 Zuul 2.x,所以就没什么好比的。
如何选择?
本文说的 Zuul 指 Zuul 1.x,Netflix 早就发布了最新的 Zuul 2.x,但 Spring Cloud 貌似没有整合计划,栈长看了下目前最新的包,整合的还是 Zuul 1.x。
据了解,正是因为 Zuul 2.x 的不断跳票,Spring Cloud 才釜底抽薪推出了自己的服务网关:Spring Cloud Gateway,栈长看了下,使用起来比 Zuul 更简单,配置更方便,所以说选 Spring Cloud Gateway 没错,毕竟是 Spring Cloud 亲儿子,不会始乱终弃。
————————————————
版权声明:本文为优快云博主「Java技术栈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/youanyyou/article/details/90100546
SpringCloudGateway作为SpringCloud的服务网关,相比Netflix的Zuul提供了更好的性能和使用体验。它基于Spring5.0和SpringBoot2.0,利用Netty的异步非阻塞模型,支持WebSockets,且与Spring体系更融合,配置更简单。Zuul1.x基于Servlet,存在内部延迟和资源消耗问题。尽管Zuul2.x有所改进,但SpringCloud目前并未集成。因此,SpringCloudGateway在服务网关选择上更具优势。
399

被折叠的 条评论
为什么被折叠?



