spring-cloud-Gateway是spring-cloud的一个子项目。
zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已。
因为zuul2.0连续跳票和zuul1的性能表现不是很理想,所以催生了spring团队开发了Gateway项目。
Zuul:
使用的是阻塞式的API,不支持长连接,比如 websockets。
底层是servlet,Zuul处理的是http请求
没有提供异步支持(是同步请求的),流控等均由hystrix支持。
依赖包:spring-cloud-starter-netflix-zuul。
Gateway:
Spring Boot和Spring Webflux提供的Netty底层环境;
不能和传统的Servlet容器一起使用,也不能打包成一个WAR包。
不能引入spring-boot-starter-web依赖(默认内置tomcat容器);
gateway默认undertow容器。
依赖: spring-boot-starter-webflux和spring-cloud-starter-gateway
提供了异步支持(是异步请求的),提供了抽象负载均衡,提供了抽象流控,
并默认实现了RedisRateLimiter。
二、相同点:
1、底层都是servlet
2、两者均是web网关,处理的是http请求
三、不同点:
1、内部实现:
gateway对比zuul多依赖了spring-webflux,在spring的支持下,功能更
强大,内部实现了限流、负载