Zuul和Gateway

Zuul是Netflix公司提供的微服务网关,它可以和Eureka、Ribbon、Hystrix等组件配合使用,实现认证和安全、性能监测、动态路由、负载均衡、压力测试、静态资源处理等功能。

Gateway是Spring官方基于Spring 5.0、Spring Boot 2.0和Project Reactor等技术开发的网关。Gateway作为Spring Cloud中的网关,目标是替代Zuul,其不仅提供了统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,如安全、监控和限流等。

 

虽然都是微服务网关,但Zuul和Gateway有许多区别。

 

Zuul基于Servlet,在Zuul 1.x的时候Zuul仅支持同步阻塞式I/O,不支持websockets长连接,但是在Zuul 2.x的时候Zuul引入了高性能的Reactor模式通信框架Netty,可支持异步非阻塞式I/O和websockets长连接。

 

Gateway是基于WebFlux框架实现的,而WebFlux框架底层使用了Netty,支持websockets长连接,支持异步非阻塞式I/O。Gateway比Zuul多依赖了Spring WebFlux,因此在Spring的支持下,功能更强大,内部实现了限流、负载均衡等功能,扩展性也更强,但Gateway仅适用于Spring Cloud。Zuul则可以扩展至其他微服务架构中。

 

总的来说,在微服务架构中,如果使用了Spring Cloud的基础组件,则Gateway相比而言更加具备优势。

如果使用小型微服务架构或复杂架构(包含其他非Spring Cloud服务节点),Zuul也是一个不错的选择。

posted @ 2022-12-14 12:03  cnetsa  阅读(1320)  评论(0编辑  收藏  举报