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

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