Spring Cloud Gateway是Spring Cloud Finchley版推出来的新组件,用来代替服务网关:Zuul
两者区别
开源组织
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
底层实现
参考: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框架紧密集成,开发体验相对来说十分不错。
性能表现
这个没什么好比的,要比就和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亲儿子,不会始乱终弃。




