您好,登錄后才能下訂單哦!
這篇文章主要介紹“JuAPI網關性能測試的方法過程”,在日常操作中,相信很多人在JuAPI網關性能測試的方法過程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JuAPI網關性能測試的方法過程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
計劃測試的API網關包括:
hyperapi Kong goku APISIX
測試的只是一個最簡單的請求轉發場景,訪問網關上游的nginx上的一個靜態頁面,所有網關都配置為apikey的認證方式,并啟用各自的RateLimit插件。
廢話少說先上個結果吧:
測試中各個網關的具體配置和運行的測試命令參見項目文檔的Benchmark部分。
首先使用ab測試了一下nginx返回一個靜態頁面的性能作為測試基準,在100并發50萬次請求下,Nginx服務器的CPU在90%以上,得到的數字是QPS:38756.59
hyperapi是JuAPI的網關在github上的名字,是一個開源的,基于rust語言,tokio異步框架和hyper庫開發的一個API網關。
在這個測試中通過手寫的靜態配置文件來啟動網關服務,在200并發50萬次請求的測試運行中,hyperapi進程CPU占用率接近100%,后端nginx進程CPU使用率大約20%,最后的QPS為10164,沒有請求出錯,99%請求延遲<26ms。
Kong是一個挺知名的開源API網關產品了,基于nginx和lua開發,產品分為企業版和社區版,官方還提供了各種系統包管理工具的支持,這里就是使用ubuntu的apt-get安裝了Kong。
Kong的網關配置支持RESTful接口和配置文件的方式,這里為了簡化配置,沒有安裝數據庫和管理系統,也是通過手寫配置文件來啟動的Kong網關。
在200并發50萬次請求的測試運行中,Kong的進程CPU占用率接近100%,后端nginx進程CPU使用率大約20%,最后的QPS為9598,沒有請求出錯,99%請求延遲<68ms。
Kong作為一個老牌開源網關項目,文檔質量在對比的幾個產品中是最好的,是我們要學習的榜樣。
Goku是eolinker的API網關軟件,使用Go語言開發,產品分為社區版和企業版。但這里想要測試的Goku社區版的文檔嚴重缺失,盡管通過docker順利安裝了控制臺和網關節點,但在使用中卡在了Strategy鑒權設置的Authentication-Type上,未能完成測試,可能eolinker不太希望用戶使用社區版吧。參考Goku網站上對比Kong的測試結果,估計和Kong是同等級的性能水平。
作為新晉成為Apache頂級項目的APISIX,其官網上的測試數據讓我十分驚嘆,單核就能支撐14000+的QPS,同樣是基于Nginx和Lua的API網關產品,Kong在同樣的測試環境下在不啟用插件的情況下性能水平和APISIX十分接近,但在啟用了limit rate + prometheus兩個插件后,性能驟降至2500QPS左右,或許是請求數據需要在nginx和lua虛擬機之間傳遞的代價比較大吧。
這里是按照APISIX手冊中的指引,使用docker安裝了APISIX的網關和Dashboard,在Dashboard中配置了一個服務,開啟了apikey認證和limit-req插件,在同樣的硬件條件下,并沒有表現出對比Kong的巨大優勢:在200并發50萬次請求的測試運行中,APISIX的進程CPU占用率接近100%,后端nginx進程CPU使用率大約20%,最后的QPS為9385,沒有請求出錯,99%請求延遲<46ms。
到此,關于“JuAPI網關性能測試的方法過程”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。