Soul Api網關功能需求技術選型分析

KlBlog   發布時間:2022-02-25 15:41:12   作者:kl   我要評論
這篇文章主要介紹了Soul Api網關功能需求技術選型分析,最近公司中臺api有用到網關的需求,特整理了下網關的基本功能以及Soul網關系統的功能架構設計,記錄于此,有需要的朋友可以借鑒參考下

前言

最近公司中臺api有用到網關的需求,特整理了下網關的基本功能以及Soul網關系統的功能架構設計,記錄于此。最終選擇了Soul網關系統還是因為其架構設計清晰,基于spring boot而且提供了Admin管理后臺,而且底層使用spring webflux響應式編程,基于zk的本地緩存設計支持分布式多實例部署,性能問題就不無需多慮了

網關有哪些功能需求?

網關需求

  • 限流 :為了保護后端服務的穩定,不被惡意的流量洪峰壓垮,需要在網關層面根據實際接口業務需要控制請求流量大小
  • 熔斷降級 :如果下游服務處理出問題了,需要在網關層觸發服務熔斷策略,直接返回降級的接口內容
  • 鑒權 :對所有的請求進行請求合法性,以及接口權限進行鑒定
  • 白名單 :只有加入白名單的ip才能放行
  • 接口負載 :當后端服務有多個實例時,網關能夠根據具體的負載規則策略進行負載,并且在服務出現問題時,能夠進行服務切換等基本的容錯處理
  • web管理臺 :需要有一個web管理后臺,管理如上限流、白名單等的這些策略信息,最好策略可以實施生效

業務需求

  • 資源管理 :對接凱京內部所有的提供web api的系統,管理每個應用的接口url信息
  • 接口調用審計(待定):針對特別的有價值的接口,需要做接口調用審計,統計每次的調用

關于Soul網關

What is the Soul?

這是一個異步的,高性能的,跨語言的,響應式的API網關。參考了Kong,Spring-Cloud-Gateway等優秀的網關后,站在巨人的肩膀上,Soul由此誕生!

Features

  • 支持各種語言,無縫集成Dubbo,SpringCloud。
  • 豐富的插件支持,鑒權,限流,熔斷,防火墻等等。
  • 網關多種規則動態配置,支持各種策略配置。
  • 插件熱插拔,易擴展。
  • 支持集群部署,支持A/B Test。

架構圖

選擇Soul網關

架構清晰

Soul網關開源項目架構清晰,參考借鑒了Kong,Spring-Cloud-Gateway等優秀的網關設計,基礎架構框架使用spring boot構建。在技術架構上采用了zookeeper+mysql作為元數據存儲中心以支持分布式部署,通過zk節點監聽機制,動態的維護了本地緩存信息,用以提高網關系統的并發度。在功能架構上分為Admin管理模塊和Server服務提供模塊,功能職責分離。

插件化&規則選擇器設計

Soul提供了完整的插件化功能,目前在自帶的插件列表中已經包含了WAF、簽名、限流等常用的插件,而且像上面提到的白名單功能,實現一個白名單功能插件很簡單,只需要實現一個接口或者抽象類即可?;谝巹t選擇器的設計可以實現非常細粒度的路由控制,而且非常的靈活

基本功能全面

Soul除了基本的網關鑒權路由功能外,還提供了包括限流,URL重寫,dubbo路由,spring Cloud路由,請求監控等功能,最重要的是還提供了一個前后端分離架構的Admin管理后臺應用,用來管理基礎的元數據信息。

碼云GVP項目

Soul項目已經是碼云GVP俱樂部項目,同時,作者對分布式事務也很有研究,不僅參與了TX-LCN的建設,而且自己還開源了多個分布式事務框架均已加入了GVP俱樂部。作者一直活躍在各大熱門開源項目社區,我們曾就TX-LCN和Klock有過交流,作者是個技術非常牛逼的人, Soul值得一試。

結語       

綜上:最重要的一點是Soul基于spring boot構建,架構清晰,插件&規則選擇器等設計,非常方便進行業務集成和二次開發。目前Soul網關在生產上使用的人還不多,體驗使用下來小問題還是有一些的,不過這都不重要。選擇一個開源的項目自主可控是最關鍵的一點,出現任何問題都能hold住就行了。

以上就是Soul Api網關功能需求技術選型分析的詳細內容,更多關于Soul Api網關技術選型的資料請關注腳本之家其它相關文章!

相關文章

最新評論

免费人成视频在线观看