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

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

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

一、開源組織github

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

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

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

https://github.com/Netflix/zuulwebsocket

二、底層實現框架

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

據 Spring Cloud Gateway 原做者的解釋:socket

Zuul構建於 Servlet 2.5,兼容 3.x,使用的是阻塞式的 API,不支持長鏈接,好比 websockets。另外

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

三、性能表現

這個沒什麼比如的,要比就和 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 親兒子,不會始亂終棄。

關注Java技術棧微信公衆號,棧長將繼續分享 Spring Cloud Gateway 的實戰教程,公衆號第一時間推送,持續關注。在公衆號後臺回覆:cloud,獲取棧長整理的更多的 Spring Cloud 教程,都是實戰乾貨,如下僅爲部分預覽。

  • Spring Cloud 最新 Finchley 版本踩坑
  • Spring Cloud 多版本如何選擇
  • Spring Cloud 是什麼,和 Dubbo 對比
  • Spring Cloud 註冊中心高可用搭建
  • Spring Cloud Eureka 自我保護機制
  • ……

本文原創首發於微信公衆號:Java技術棧(id:javastack),關注公衆號在後臺回覆 "cloud" 可獲取更多 Spring Cloud 教程,轉載請原樣保留本信息。

相關文章
相關標籤/搜索