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

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)

分享創造快樂