天天看點

Spring Cloud Gateway VS Zuul 比較,怎麼選擇?

Spring Cloud Gateway 是 Spring Cloud Finchley 版推出來的新元件,用來代替服務網關:Zuul。

那 Spring Cloud Gateway 和 Zuul 都有哪些差別呢,咱們來比較一下。

1、開源組織

Spring Cloud Gateway 是 Spring Cloud 微服務平台的一個子項目,屬于 Spring 開源社群,依賴名叫:spring-cloud-starter-gateway。

https://spring.io/projects/spring-cloud-gateway

Zuul 是 Netflix 公司的開源項目,Spring Cloud 在 Netflix 項目中也已經內建了 Zuul,依賴名叫:spring-cloud-starter-netflix-zuul。

https://github.com/Netflix/zuul

2、底層實作

https://stackoverflow.com/questions/47092048/how-is-spring-cloud-gateway-different-from-zuul

據 Spring Cloud Gateway 原作者的解釋:

Zuul建構于 Servlet 2.5,相容 3.x,使用的是阻塞式的 API,不支援長連接配接,比如 websockets。另外

Spring Cloud Gateway建構于 Spring 5+,基于 Spring Boot 2.x 響應式的、非阻塞式的 API。同時,它支援 websockets,和 Spring 架構緊密內建,開發體驗相對來說十分不錯。

3、性能表現

這個沒什麼好比的,要比就和 Zuul 2.x 比,Zuul 2.x 在底層上有了很大的改變,使用了異步無阻塞式的 API,性能改善明顯,不過現在 Spring Cloud 也沒內建 Zuul 2.x,是以就沒什麼好比的。

如何選擇?

本文說的 Zuul 指 Zuul 1.x,Netflix 早就釋出了最新的 Zuul 2.x,但 Spring Cloud 貌似沒有整合計劃,棧長看了下目前最新的包,整合的還是 Zuul 1.x。

據了解,正是因為 Zuul 2.x 的不斷跳票,Spring Cloud 才釜底抽薪推出了自己的服務網關:Spring Cloud Gateway,棧長看了下,使用起來比 Zuul 更簡單,配置更友善,是以說選 Spring Cloud Gateway 沒錯,畢竟是 Spring Cloud 親兒子,不會始亂終棄。