当前位置:首页>开发>正文

gateway和zuul的区别

2023-12-27 23:14:48 互联网 未知 开发

gateway和zuul的区别?

gateway和zuul的区别

Gateway和Zuul都是Spring Cloud微服务框架中的网关组件,它们之间的区别如下:

1. Gateway是Spring Cloud Gateway组件,而Zuul是Spring Cloud Netflix组件。虽然它们都是网关,但是它们的实现方式和框架不同。

2. Gateway基于Spring 5,支持Reactor模型,提供了一种响应式编程的方式,而Zuul基于Servlet 2.5 ,采用阻塞IO模型,使用的是同步编程的方式。

3. Gateway提供了更加灵活的路由规则定义方式,支持基于Predicate的路由规则定义,能够更加细粒度地控制请求路由。而Zuul的路由规则定义方式相对较为简单。

4. Gateway支持多种协议的路由,如HTTP、WebSocket、TCP等,而Zuul只支持HTTP协议的路由。

5. Gateway提供了更为丰富的过滤器,可以进行请求鉴权、请求限流、请求重定向等操作,而Zuul的过滤器相对较为简单。

总之,Gateway和Zuul都是实现微服务架构中的网关功能的组件,但是它们在实现方式、功能特点和使用场景等方面存在一定的差异。用户在选择时需根据自己的业务需求和技术栈等因素进行选择。

在于它们所服务的层次和技术架构的不同。
确切地说,gateway是Spring Cloud生态系列中的新一代API网关,旨在为微服务架构下的API提供统一入口,分配请求,并应用各种安全策略。
它主要为服务提供方提供API的统一聚合和路由,也不同的是,它支持异步,基于Netty实现,性能更高。
而zuul则相对于gateway来说是早期的API网关方案,是基于servlet容器实现的,性能略低于gateway,且zuul服务提供方主要是自己的服务网关,因为它不支持异步实现,所以适用于简单场景的微服务大门面。

内部实现不同、支持异步不同、框架设计的角度不同、性能不同。1、内部实现不同:gateway对比zuul多依赖了spring-webflux,在spring的支持下,功能更强大,内部实现了限流、负载均衡等,但同时也限制了仅适合于Spring Cloud套件zuul则可以扩展至其他微服务框架中。

内部实现不同:

gateway对比zuul多依赖了spring-webflux,在spring的支持下,功能更强大,内部实现了限流、负载均衡等,扩展性也更强,但同时也限制了仅适合于Spring Cloud套件zuul则可以扩展至其他微服务框架中。

是否支持异步:

zuul仅支持同步gateway支持异步。理论上gateway则更适合于提高系统吞吐量(但不一定能有更好的性能),最终性能还需要通过严密的压测来决定。


框架设计的角度:

gateway具有更好的扩展性,并且其已经发布了2.0.0的RELESE版本,稳定性也是非常好的。

gateway与zuul区别:


Zuul:


使用的是阻塞式的 API,不支持长连接,比如 websockets。


底层是servlet,Zuul处理的是http请求


没有提供异步支持,流控等均由hystrix支持。


依赖包spring-cloud-starter-netflix-zuul。


Gateway:


Spring Boot和Spring Webflux提供的Netty底层环境,不能和传统的Servlet容器一起使用,也不能打包成一个WAR包。


依赖spring-boot-starter-webflux和/ spring-cloud-starter-gateway


提供了异步支持,提供了抽象负载均衡,提供了抽象流控,并默认实现了RedisRateLimiter。

最新文章

随便看看