Soul Api網(wǎng)關(guān)功能需求技術(shù)選型分析

前言
最近公司中臺api有用到網(wǎng)關(guān)的需求,特整理了下網(wǎng)關(guān)的基本功能以及Soul網(wǎng)關(guān)系統(tǒng)的功能架構(gòu)設(shè)計,記錄于此。最終選擇了Soul網(wǎng)關(guān)系統(tǒng)還是因為其架構(gòu)設(shè)計清晰,基于spring boot而且提供了Admin管理后臺,而且底層使用spring webflux響應式編程,基于zk的本地緩存設(shè)計支持分布式多實例部署,性能問題就不無需多慮了
網(wǎng)關(guān)有哪些功能需求?
網(wǎng)關(guān)需求
- 限流 :為了保護后端服務(wù)的穩(wěn)定,不被惡意的流量洪峰壓垮,需要在網(wǎng)關(guān)層面根據(jù)實際接口業(yè)務(wù)需要控制請求流量大小
- 熔斷降級 :如果下游服務(wù)處理出問題了,需要在網(wǎng)關(guān)層觸發(fā)服務(wù)熔斷策略,直接返回降級的接口內(nèi)容
- 鑒權(quán) :對所有的請求進行請求合法性,以及接口權(quán)限進行鑒定
- 白名單 :只有加入白名單的ip才能放行
- 接口負載 :當后端服務(wù)有多個實例時,網(wǎng)關(guān)能夠根據(jù)具體的負載規(guī)則策略進行負載,并且在服務(wù)出現(xiàn)問題時,能夠進行服務(wù)切換等基本的容錯處理
- web管理臺 :需要有一個web管理后臺,管理如上限流、白名單等的這些策略信息,最好策略可以實施生效
業(yè)務(wù)需求
- 資源管理 :對接凱京內(nèi)部所有的提供web api的系統(tǒng),管理每個應用的接口url信息
- 接口調(diào)用審計(待定):針對特別的有價值的接口,需要做接口調(diào)用審計,統(tǒng)計每次的調(diào)用
關(guān)于Soul網(wǎng)關(guān)
What is the Soul?
這是一個異步的,高性能的,跨語言的,響應式的API網(wǎng)關(guān)。參考了Kong,Spring-Cloud-Gateway等優(yōu)秀的網(wǎng)關(guān)后,站在巨人的肩膀上,Soul由此誕生!
Features
- 支持各種語言,無縫集成Dubbo,SpringCloud。
- 豐富的插件支持,鑒權(quán),限流,熔斷,防火墻等等。
- 網(wǎng)關(guān)多種規(guī)則動態(tài)配置,支持各種策略配置。
- 插件熱插拔,易擴展。
- 支持集群部署,支持A/B Test。
架構(gòu)圖
選擇Soul網(wǎng)關(guān)
架構(gòu)清晰
Soul網(wǎng)關(guān)開源項目架構(gòu)清晰,參考借鑒了Kong,Spring-Cloud-Gateway等優(yōu)秀的網(wǎng)關(guān)設(shè)計,基礎(chǔ)架構(gòu)框架使用spring boot構(gòu)建。在技術(shù)架構(gòu)上采用了zookeeper+mysql作為元數(shù)據(jù)存儲中心以支持分布式部署,通過zk節(jié)點監(jiān)聽機制,動態(tài)的維護了本地緩存信息,用以提高網(wǎng)關(guān)系統(tǒng)的并發(fā)度。在功能架構(gòu)上分為Admin管理模塊和Server服務(wù)提供模塊,功能職責分離。
插件化&規(guī)則選擇器設(shè)計
Soul提供了完整的插件化功能,目前在自帶的插件列表中已經(jīng)包含了WAF、簽名、限流等常用的插件,而且像上面提到的白名單功能,實現(xiàn)一個白名單功能插件很簡單,只需要實現(xiàn)一個接口或者抽象類即可。基于規(guī)則選擇器的設(shè)計可以實現(xiàn)非常細粒度的路由控制,而且非常的靈活
基本功能全面
Soul除了基本的網(wǎng)關(guān)鑒權(quán)路由功能外,還提供了包括限流,URL重寫,dubbo路由,spring Cloud路由,請求監(jiān)控等功能,最重要的是還提供了一個前后端分離架構(gòu)的Admin管理后臺應用,用來管理基礎(chǔ)的元數(shù)據(jù)信息。
碼云GVP項目
Soul項目已經(jīng)是碼云GVP俱樂部項目,同時,作者對分布式事務(wù)也很有研究,不僅參與了TX-LCN的建設(shè),而且自己還開源了多個分布式事務(wù)框架均已加入了GVP俱樂部。作者一直活躍在各大熱門開源項目社區(qū),我們曾就TX-LCN和Klock有過交流,作者是個技術(shù)非常牛逼的人, Soul值得一試。
結(jié)語
綜上:最重要的一點是Soul基于spring boot構(gòu)建,架構(gòu)清晰,插件&規(guī)則選擇器等設(shè)計,非常方便進行業(yè)務(wù)集成和二次開發(fā)。目前Soul網(wǎng)關(guān)在生產(chǎn)上使用的人還不多,體驗使用下來小問題還是有一些的,不過這都不重要。選擇一個開源的項目自主可控是最關(guān)鍵的一點,出現(xiàn)任何問題都能hold住就行了。
以上就是Soul Api網(wǎng)關(guān)功能需求技術(shù)選型分析的詳細內(nèi)容,更多關(guān)于Soul Api網(wǎng)關(guān)技術(shù)選型的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
網(wǎng)絡(luò)知識普及之mac地址和ip地址、子網(wǎng)掩碼和默認網(wǎng)關(guān)
這篇文章主要介紹了網(wǎng)絡(luò)知識普及之mac地址和ip地址、子網(wǎng)掩碼和默認網(wǎng)關(guān),需要的朋友可以參考下2018-01-27迅時MX網(wǎng)關(guān)FXO口對接OM設(shè)備IP外線組網(wǎng)鏈接設(shè)置教程
迅時MX網(wǎng)關(guān)FXO口對接OM設(shè)備IP外線怎么設(shè)置呢?下面就為大家分享了MX網(wǎng)關(guān)FXO口對接OM設(shè)備IP外線組網(wǎng)鏈接設(shè)置方法,一起來看看了解下,以下僅供參考2017-04-06分析物聯(lián)網(wǎng)網(wǎng)關(guān)的關(guān)鍵技術(shù)和主要應用方向
這篇文章主要為大家介紹了主要分析了聯(lián)網(wǎng)網(wǎng)關(guān)有哪些關(guān)鍵技術(shù)和它的應用方向,那我們首先得了解物聯(lián)網(wǎng)是什么?物聯(lián)網(wǎng)的網(wǎng)關(guān)又是什么?腳本之家的小編將會在本文詳細介紹,需2014-09-21- 小米路由器網(wǎng)關(guān)地址怎么修改?小米路由器為了提高網(wǎng)絡(luò)安全性,想要設(shè)置網(wǎng)關(guān)地址,該怎么設(shè)置呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2018-12-16
route命令怎么查看網(wǎng)關(guān)及路由信息?
route命令怎么查看網(wǎng)關(guān)及路由信息?win7系統(tǒng)中想要查看網(wǎng)關(guān)及路由信息,該怎么查看呢?我們可以使用route命令查看,下面我們就來看看詳細的教程,需要的朋友可以參考下2018-09-17天翼網(wǎng)關(guān)怎么連路由器?光阡貓連接和設(shè)置路由器詳細圖文步驟
天翼光纖已經(jīng)入戶很久了,但是還是有很多朋友不會設(shè)置?也不知到路由器IP地址如何更改,路由器連接個網(wǎng)關(guān)192.168.1.1打不開等等等等問題。包括小編也是,今天呢小編就為大2017-10-25概念釋疑:集線器、交換機、路由器、網(wǎng)橋與網(wǎng)關(guān)
這篇文章主要介紹了概念釋疑:集線器、交換機、路由器、網(wǎng)橋與網(wǎng)關(guān),需要的朋友可以參考下2016-12-21華為路由器設(shè)置網(wǎng)關(guān)的帶寬控制(圖文教程)
這篇文章主要介紹了華為路由器設(shè)置網(wǎng)關(guān)的帶寬控制(圖文教程)的相關(guān)資料,需要的朋友可以參考下2016-12-06水星路由器設(shè)置網(wǎng)址怎么變天翼網(wǎng)關(guān)問題解決辦法
最近有一些水星路由器的用戶發(fā)現(xiàn)設(shè)置網(wǎng)址變天翼網(wǎng)關(guān)了,這個問題還是很討厭的,下面小編就帶來解決辦法,快來看看吧2016-11-18路由器wan端口網(wǎng)關(guān)未連接電腦無法上網(wǎng)該怎么辦?
路由器wan端口網(wǎng)關(guān)未連接電腦無法上網(wǎng)該怎么辦?出現(xiàn)這種問題的原因有很多,比如賬號密碼不對,沒有設(shè)置自動湖區(qū)地址,或者是路由器的問題,今天我們就來看看怎么解決這個2016-03-07