内部实现不同、支持异步不同、框架设计的角度不同、性能不同。
内部实现不同:gateway对比zuul多依赖了spring-webflux,在spring的支持下,功能更强大,内部实现了限流、负载均衡等,扩展性也更强,但同时也限制了仅适合于Spring Cloud套件zuul则可以扩展至其他微服务框架中。
是否支持异步:zuul仅支持同步gateway支持异步。理论上gateway则更适合于提高系统吞吐量(但不一定能有更好的性能),最终性能还需要通过严密的压测来决定。
框架设计的角度:gateway具有更好的扩展性,并且其已经发布了2.0.0的RELESE版本,稳定性也是非常好的。
性能:WebFlux模块的名称是spring-webflux,名称中的Flux来源于Reactor中的类 Flux。Spring webflux 有一个全新的非堵塞的函数式Reactive Web框架,可以用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现非常好。使用非阻塞API。Websockets得到支持,并且由于它与Spring紧密集成,所以将会是一个更好的 开发 体验。Zuul1.x,是一个基于阻塞io的API Gateway。Zuul已经发布了Zuul 2.x,基于Netty,也是非阻塞的,支持长连接,但Spring Cloud暂时还没有整合计划。
关键词:
gateway
zuul
区别