一:Zuul的缺点
- Zuul 1.0性能不够好,Zuul 2.0 最后虽然开源了,Spring Cloud 并没有把2.0集成进来而是推出自家的Gateway组件来替代Zuul 1.0。
- Zuul不支持长连接如websocket。
- Zuul每有一个请求就会分配一个线程,该线程会从头到尾一直到该请求结束,执行接口期间这个线程一直不会释放,当请求多的时候导致Zuul不能接收新的请求。同步阻塞式Servlet,效率没有异步的高。
- Spring Cloud在高版本中已经不建议使用Zuul了。
由于以上原因Zuul可能会被逐渐淘汰,而是使用Spring Cloud Gateway来代替。
二:Gateway优缺点
2.1 优点
- 性能强劲:是第一代Zuul的1.6 倍。
- 功能强大:内置了很多使用的功能,如转发、监控、限流。
- 设计优雅,容易扩展。
2.2 缺点
- 其实现依赖于Netty与WebFlux,不是传统的Servlet编程模型,学习成本高。
- 不能将其部署到Tomcat、Jetty等Servlet容器,所以不能引入Spring Web,只能打成jar包执行。
- 需要Spring Boot 2.0及以上的版本才支持。