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
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com