网上搜索发现多篇文章指出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性能提升很多,性能损耗问题不大。
测试时感觉首测耗时会偏高,但后面的访问速度较为稳定,有一种需要“预热”的感觉。故测试结果没有录入首测的结果。