成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

各大API網(wǎng)關(guān)性能比較

CoXie / 3008人閱讀

摘要:被測(cè)的網(wǎng)關(guān)都沒有添加額外業(yè)務(wù),只做反向代理吞吐量下圖是吞吐量的情況,可以看到均比直壓低一點(diǎn)點(diǎn),而和則要低得多。結(jié)論三者的表現(xiàn)均很不錯(cuò),其對(duì)于吞吐量和響應(yīng)時(shí)間的性能損耗很低,可以忽略不計(jì)。

用于實(shí)現(xiàn)API網(wǎng)關(guān)的技術(shù)有很多,大致分為這么幾類:

通用反向代理:Nginx、Haproxy、……

網(wǎng)絡(luò)編程框架:Netty、Servlet、……

API網(wǎng)關(guān)框架:Spring Cloud Gateway、Zuul、Zuul2、……

API網(wǎng)關(guān)最基本的功能就是反向代理,所以在對(duì)API網(wǎng)關(guān)做技術(shù)選型的時(shí)候需要著重考察其性能表現(xiàn),本文對(duì)Nginx、Haproxy、Netty、Spring Cloud Gateway、Zuul2做了性能測(cè)試,測(cè)試代碼可以在github獲得。

測(cè)試方法

準(zhǔn)備了三臺(tái)2CPU 4G內(nèi)存的服務(wù)器,分別運(yùn)行Tomcat、API Gateway、Gatling(壓測(cè)工具)

先對(duì)Tomcat做壓測(cè),取Tomcat充分預(yù)熱后的壓測(cè)結(jié)果作為基準(zhǔn)。壓的是Tomcat自帶的example:/examples/jsp/jsp2/simpletag/book.jsp

在對(duì)Netty、Zuul2、Spring Cloud Gateway做壓測(cè)時(shí)候也是先壓個(gè)幾輪做預(yù)熱。

被測(cè)的API網(wǎng)關(guān)都沒有添加額外業(yè)務(wù),只做反向代理

吞吐量

下圖是吞吐量的情況,可以看到Netty、Nginx、Haproxy均比直壓Tomcat低一點(diǎn)點(diǎn),而Spring Cloud Gateway和Zuul2則要低得多。

下面這張圖可以更明顯的看到吞吐量比較,Tomcat為100%因?yàn)樗腔鶞?zhǔn)值,Netty、Nginx、Haproxy的只比基準(zhǔn)值低8%,而Spring Cloud Gateway和Zuul2則只是基準(zhǔn)值的35%和34%(難兄難弟)。

平均響應(yīng)時(shí)間

下圖可以看到Netty、Nginx、Haproxy的平均響應(yīng)時(shí)間與Tomcat差不多。但是Spring Cloud Gateway和Zuul2則是Tomcat的3倍多,不出所料。

下圖同樣是以Tomcat作為基準(zhǔn)值的比較:

響應(yīng)時(shí)間分布

光看平均響應(yīng)時(shí)間是不夠的,我們還得看P50、P90、P99、P99.9以及Max響應(yīng)時(shí)間(可惜Gatling只能設(shè)置4個(gè)百分位,否則我還想看看P99.99的響應(yīng)時(shí)間)。

為何要觀察P99.9的響應(yīng)時(shí)間?光看P90不夠嗎?理由有兩個(gè):

1)觀察P99、P99.9、P99.99的響應(yīng)時(shí)間可以觀察系統(tǒng)的在高壓情況下的穩(wěn)定性,如果這三個(gè)時(shí)間的增長(zhǎng)比較平滑那么說明該系統(tǒng)在高壓力情況下比較穩(wěn)定,如果這個(gè)曲線非常陡峭則說明不穩(wěn)定。

2)觀察P99、P99.9、P99.99的響應(yīng)時(shí)間能夠幫助你估算用戶體驗(yàn)。假設(shè)你有一個(gè)頁面會(huì)發(fā)出5次請(qǐng)求,那么這5次請(qǐng)求均落在P90以內(nèi)概率是多少?90%^5=59%,至少會(huì)經(jīng)歷一次 > P90響應(yīng)時(shí)間的概率是 100%-59%=41%,如果你的P90=10s,那么就意味著用戶有41%的概率會(huì)在加載頁面的時(shí)候超過10s,是不是很驚人?如果你的P99=10s,那么用戶只有5%的概率會(huì)在訪問頁面的時(shí)候超過10s。如果P99.9=10s,則有0.4%的概率。

關(guān)于如何正確測(cè)量系統(tǒng)可以看 “How NOT to Measure Latency” by Gil Tene

下面同樣是把結(jié)果與Tomcat基準(zhǔn)值做對(duì)比:

可以看到幾個(gè)很有趣的現(xiàn)象:

Haproxy、Nginx的P50、P90、P99、P99.9、Max都是逐漸遞增的。

Netty的P50、P90、P99、P99.9是很平坦的,Max則為基準(zhǔn)值的207%。

Spring Cloud Gateway和Zuul2則是相反的,它們的平面呈現(xiàn)下降趨勢(shì)。Spring Cloud Gateway的Max甚至還比基準(zhǔn)值低了一點(diǎn)點(diǎn)(94%),我相信這只是一個(gè)隨機(jī)出現(xiàn)的數(shù)字,不要太在意。

結(jié)論

Nginx、Haproxy、Netty三者的表現(xiàn)均很不錯(cuò),其對(duì)于吞吐量和響應(yīng)時(shí)間的性能損耗很低,可以忽略不計(jì)。

但是目前最為火熱的Spring Cloud Gateway和Zuul2則表現(xiàn)得比較糟糕,因我沒有寫額外的業(yè)務(wù)邏輯這,可以推測(cè)這和它們的內(nèi)置邏輯有關(guān),那么大致有這么幾種可能:

內(nèi)置邏輯比較多

內(nèi)置邏輯算法存在問題,占用了太多CPU時(shí)間

內(nèi)置邏輯存在阻塞

內(nèi)置邏輯沒有用正確姿勢(shì)使用Netty(兩者皆基于Netty)

不管是上面的哪一種都需要再后續(xù)分析。

不過話說回來考慮選用那種作為API網(wǎng)關(guān)(的基礎(chǔ)技術(shù))不光要看性能,還要看:

是否易于擴(kuò)展自己的業(yè)務(wù)邏輯

API使用的便利性

代碼的可維護(hù)性

文檔是否齊全

...

性能只是我們手里的一個(gè)籌碼,當(dāng)我們知道這個(gè)東西性能到底幾何后,才可以與上面的這些做交換(trade-off)。比如Nginx和Haproxy的可擴(kuò)展性很差,那么我們可以使用Netty。如果你覺得Netty的API太底層了太難用了,那么可以考慮Spring Cloud Gateway或Zuul2。前提是你知道你會(huì)失去多少性能。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40586.html

相關(guān)文章

  • 各大API網(wǎng)關(guān)性能比較

    摘要:被測(cè)的網(wǎng)關(guān)都沒有添加額外業(yè)務(wù),只做反向代理吞吐量下圖是吞吐量的情況,可以看到均比直壓低一點(diǎn)點(diǎn),而和則要低得多。結(jié)論三者的表現(xiàn)均很不錯(cuò),其對(duì)于吞吐量和響應(yīng)時(shí)間的性能損耗很低,可以忽略不計(jì)。 用于實(shí)現(xiàn)API網(wǎng)關(guān)的技術(shù)有很多,大致分為這么幾類: 通用反向代理:Nginx、Haproxy、…… 網(wǎng)絡(luò)編程框架:Netty、Servlet、…… API網(wǎng)關(guān)框架:Spring Cloud Gate...

    The question 評(píng)論0 收藏0
  • 消息中間件——RabbitMQ(二)各大主流消息中間件綜合對(duì)比介紹!

    摘要:主流消息中間件介紹是由出品,是一個(gè)完全支持和規(guī)范的實(shí)現(xiàn)。主流消息中間件介紹是阿里開源的消息中間件,目前也已經(jīng)孵化為頂級(jí)項(xiàng)目。 showImg(https://img-blog.csdnimg.cn/20190509221741422.gif);showImg(https://img-blog.csdnimg.cn/20190718204938932.png?x-oss-process=...

    hiyang 評(píng)論0 收藏0
  • 【戴嘉樂】(入門)基于IPFS和Ngrok構(gòu)建自維護(hù)資源網(wǎng)關(guān)

    摘要:作者簡(jiǎn)介戴嘉樂前百度高級(jí)研發(fā)工程師應(yīng)用實(shí)踐者布道師個(gè)人網(wǎng)站聯(lián)系方式微信號(hào)。二技術(shù)介紹對(duì)這項(xiàng)技術(shù)不熟悉的同學(xué),可以參考我之前一次演講分享的內(nèi)容戴嘉樂詳解的本質(zhì)技術(shù)架構(gòu)以及應(yīng)用。 作者簡(jiǎn)介:戴嘉樂( Mr.Maple ) | 前百度高級(jí)研發(fā)工程師 | IPFS應(yīng)用實(shí)踐者&布道師|個(gè)人網(wǎng)站:https://www.daijiale.cn聯(lián)系方式:微信號(hào):daijiale6239。 一、應(yīng)用背...

    CloudwiseAPM 評(píng)論0 收藏0
  • 【戴嘉樂】(進(jìn)階)基于IPFS和Ngrok構(gòu)建自維護(hù)資源網(wǎng)關(guān)

    摘要:五參考文獻(xiàn)區(qū)塊鏈利用構(gòu)建自己的去中心化分布式系統(tǒng)相關(guān)文章和視頻推薦戴嘉樂入門基于和構(gòu)建自維護(hù)資源網(wǎng)關(guān)圓方圓學(xué)院匯集大批區(qū)塊鏈名師,打造精品的區(qū)塊鏈技術(shù)課程。 作者簡(jiǎn)介:戴嘉樂( Mr.Maple ) | 前百度高級(jí)研發(fā)工程師 | IPFS應(yīng)用實(shí)踐者&布道師|個(gè)人網(wǎng)站:https://www.daijiale.cn聯(lián)系方式:微信號(hào):daijiale6239。 一、背景 上篇文章[《(入門...

    xiyang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

CoXie

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<