RuoYiplus 3.0已經升級,v3.0版本中選擇了Gateway做爲服務網關。選擇以前做者也在經常使用的網關服務Zuul和Gateway之間作徘徊,通過翻閱和蒐集一些資料,最終選擇了Gateway,那麼讓咱們看看二者之間的區別和聯繫吧。git
本文中的zuul,指的是zuul1.x,springcloud暫沒有整合zuul2.x的計劃,gateway是springcloud重點扶持的子項目,固僅在zuul1.x和gateway作比較。github
Spring Cloud Gateway
- 基本介紹:Spring Cloud Gateway是Spring官方基於Spring 5.0,Spring Boot 2.0和Project Reactor等技術開發的網關,Spring Cloud Gateway旨在爲微服務架構提供一種簡單而有效的統一的API路由管理方式。Spring Cloud Gateway做爲Spring Cloud生態系中的網關,目標是替代Netflix ZUUL,其不只提供統一的路由方式,而且基於Filter鏈的方式提供了網關基本的功能,例如:安全,監控/埋點,和限流等。
- 性能介紹:WebFlux 模塊的名稱是 spring-webflux,名稱中的 Flux 來源於 Reactor 中的類 Flux。Spring webflux 有一個全新的非堵塞的函數式 Reactive Web 框架,能夠用來構建異步的、非堵塞的、事件驅動的服務,在伸縮性方面表現很是好。使用非阻塞API。 Websockets獲得支持,而且因爲它與Spring緊密集成,因此將會是一個更好的 開發 體驗。
- 源碼維護組織:spring-cloud-Gateway是spring旗下spring-cloud的一個子項目。還有一種說法是由於zuul2連續跳票和zuul1的性能表現不是很理想,因此催生了spring孵化Gateway項目。
Zull
- 基本介紹:Zuul1是基於 Servlet 2.5,兼容 3.x開發的網關,本質上也是一個web servlet應用。 Zuul提供了動態路由、監控、彈性負載和安全功能 。
- 性能介紹:Zuul1採用的是阻塞和多線程方式,即一個線程處理一次鏈接請求,這種方式在內部延遲嚴重、設備故障較多狀況下會引發存活的鏈接增多和線程增長的狀況發生。Zuul已經發布了Zuul 2.x,基於Netty,也是非阻塞的,支持長鏈接,但Spring Cloud暫時尚未整合計劃。
- 源碼維護組織:zuul則是netflix公司的項目,只是spring將zuul集成在spring-cloud中使用而已。關鍵目前spring不打算集成zuul2.x。
RuoYiPlus開源
本項目由 SMP 多商戶權限管理系統 + API 接口服務組成,是在開源項目 RuoYi4.0(若依) 的基礎上升級調整的微服務體系,項目基於 SpringBoot2.x,springcloudG 版本 eureka、hystrix、feign、config、gateway 微服務架構,集成 redis、tk.mybatis、lombok、各類設計模式等,是可選性後臺管理系統或後端web
接口服務。redis
源碼地址spring
- Gitee(主):https://gitee.com/aimeng2017/RuoYi-plus
- Github(輔):https://github.com/zebra-ruoyi-plus/ruoyi-plus