溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JuAPI網(wǎng)關性能測試的方法過程

發(fā)布時間:2021-10-12 13:38:05 來源:億速云 閱讀:169 作者:iii 欄目:編程語言

這篇文章主要介紹“JuAPI網(wǎng)關性能測試的方法過程”,在日常操作中,相信很多人在JuAPI網(wǎng)關性能測試的方法過程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JuAPI網(wǎng)關性能測試的方法過程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

計劃測試的API網(wǎng)關包括:

hyperapi
Kong
goku
APISIX

測試的只是一個最簡單的請求轉(zhuǎn)發(fā)場景,訪問網(wǎng)關上游的nginx上的一個靜態(tài)頁面,所有網(wǎng)關都配置為apikey的認證方式,并啟用各自的RateLimit插件。

廢話少說先上個結(jié)果吧:

JuAPI網(wǎng)關性能測試的方法過程

測試中各個網(wǎng)關的具體配置和運行的測試命令參見項目文檔的Benchmark部分。

Baseline

首先使用ab測試了一下nginx返回一個靜態(tài)頁面的性能作為測試基準,在100并發(fā)50萬次請求下,Nginx服務器的CPU在90%以上,得到的數(shù)字是QPS:38756.59

hyperapi

hyperapi是JuAPI的網(wǎng)關在github上的名字,是一個開源的,基于rust語言,tokio異步框架和hyper庫開發(fā)的一個API網(wǎng)關。

在這個測試中通過手寫的靜態(tài)配置文件來啟動網(wǎng)關服務,在200并發(fā)50萬次請求的測試運行中,hyperapi進程CPU占用率接近100%,后端nginx進程CPU使用率大約20%,最后的QPS為10164,沒有請求出錯,99%請求延遲<26ms。

Kong

Kong是一個挺知名的開源API網(wǎng)關產(chǎn)品了,基于nginx和lua開發(fā),產(chǎn)品分為企業(yè)版和社區(qū)版,官方還提供了各種系統(tǒng)包管理工具的支持,這里就是使用ubuntu的apt-get安裝了Kong。

Kong的網(wǎng)關配置支持RESTful接口和配置文件的方式,這里為了簡化配置,沒有安裝數(shù)據(jù)庫和管理系統(tǒng),也是通過手寫配置文件來啟動的Kong網(wǎng)關。

在200并發(fā)50萬次請求的測試運行中,Kong的進程CPU占用率接近100%,后端nginx進程CPU使用率大約20%,最后的QPS為9598,沒有請求出錯,99%請求延遲<68ms。

Kong作為一個老牌開源網(wǎng)關項目,文檔質(zhì)量在對比的幾個產(chǎn)品中是最好的,是我們要學習的榜樣。

Goku

Goku是eolinker的API網(wǎng)關軟件,使用Go語言開發(fā),產(chǎn)品分為社區(qū)版和企業(yè)版。但這里想要測試的Goku社區(qū)版的文檔嚴重缺失,盡管通過docker順利安裝了控制臺和網(wǎng)關節(jié)點,但在使用中卡在了Strategy鑒權設置的Authentication-Type上,未能完成測試,可能eolinker不太希望用戶使用社區(qū)版吧。參考Goku網(wǎng)站上對比Kong的測試結(jié)果,估計和Kong是同等級的性能水平。

APISIX

作為新晉成為Apache頂級項目的APISIX,其官網(wǎng)上的測試數(shù)據(jù)讓我十分驚嘆,單核就能支撐14000+的QPS,同樣是基于Nginx和Lua的API網(wǎng)關產(chǎn)品,Kong在同樣的測試環(huán)境下在不啟用插件的情況下性能水平和APISIX十分接近,但在啟用了limit rate + prometheus兩個插件后,性能驟降至2500QPS左右,或許是請求數(shù)據(jù)需要在nginx和lua虛擬機之間傳遞的代價比較大吧。

這里是按照APISIX手冊中的指引,使用docker安裝了APISIX的網(wǎng)關和Dashboard,在Dashboard中配置了一個服務,開啟了apikey認證和limit-req插件,在同樣的硬件條件下,并沒有表現(xiàn)出對比Kong的巨大優(yōu)勢:在200并發(fā)50萬次請求的測試運行中,APISIX的進程CPU占用率接近100%,后端nginx進程CPU使用率大約20%,最后的QPS為9385,沒有請求出錯,99%請求延遲<46ms。

到此,關于“JuAPI網(wǎng)關性能測試的方法過程”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI