歡迎光臨
每天分享高質量文章

WebApi閘道器之Bumblebee和Ocelot效能對比

Bumblebee是基於.net core 2.1開發的WebApi閘道器元件,由於Bumblebee所追求的輕量化和效能,所以它並沒有像Ocelot那樣從asp.net core上進行擴充套件;而是構建在BeetleX.FastHttpApi之上,主要原因BeetleX.FastHttpApi有著更輕量化和高效能的特點。雖然Bumblebee追求的是輕量化和效能, 不過具備的功能也不少,先看一下它能做什麼:

為了確保閘道器的效能,元件也重寫了一個精簡的HttpClient用於滿足閘道器效能的需要;在這精簡化的背後底能得到怎樣的效能提升呢?接下來和Ocelot做一個基礎轉發效能對比。

測試描述

為了讓測試更標準化,後臺提供的服務基於asp.net core webapi,而Bumblebee和Ocelot則作為閘道器代理請求;然後分別用ab(開啟K引數)和bombardier分別在500,1000,2000連線數的情況測試相應的RPS情況。

測試環境

  • 閘道器伺服器:e3-1230v2 16g記憶體(4核8執行緒)

  • webapi伺服器:e5-2670v2 32g記憶體(10核20執行緒)

  • 壓測伺服器:e5-2670v2 32g記憶體(10核20執行緒)

  • 測試頻寬:光模組10Gb

測試webapi程式碼

由於是測試基礎效能,所以webapi的程式碼並沒有邏輯,只是一個簡單的基礎服務程式碼:

Bumblebee閘道器配置

Ocelot閘道器配置

測試程式碼地址

https://github.com/IKende/Bumblebee/tree/master/BumblebeeVSOcelot

AB測試結果

bombardier測試結果

總結

從兩者的測試結果看,Bumblebee效能基本是Ocelot的4倍 所以精簡化帶來的效能提升還是非常明顯的。不過實際應用中效能並不是唯一應用的指標,Ocelot雖然效能不高但也在整合上的優勢何況有多少業務需要這麼高的併發業務呢?如果你追求一個精簡高性的閘道器可以考慮Bumblebee,但如果希望一個整合規模更大,有著更好的社群資料那必然是Ocelot。

原文地址:https://mp.weixin.qq.com/s/qkjw7UOFHL1mR35C4iogdg

贊(0)

分享創造快樂