網上搜索發現多篇文章指出ocelot的性能有問題,可是在ocelot項目issue提問中,維護者指出,ocelot的性能問題不大。瓶頸在於.net的httpclient。
我參考文章
https://www.cnblogs.com/myzony/p/10401298.html
制作了一個測試項目,並將代碼傳到了github,供有需要的人自行測試。
wrk我在ubuntu wsl中未能編譯通過,所以改用了ab測試。
源碼及測試結果請見:
https://github.com/wswind/Ocelot-Performance-Test
項目中關閉了log,因為官方文檔中指出錯誤設置的log尤其是打印到控制台的log會對性能影響很大。
update:
更新到了.net core 3.1 ,不再使用wsl,而是通過虛擬機運行ab。添加了Nginx的對比測試。
升級到.net core 3.1后測試發現ocelot性能提升很多,性能損耗問題不大。
測試時感覺首測耗時會偏高,但后面的訪問速度較為穩定,有一種需要“預熱”的感覺。故測試結果沒有錄入首測的結果。