WebApi网关之Bumblebee和Ocelot性能对比

Bumblebee是基于.net core 2.1开发的WebApi网关组件,由于Bumblebee所追求的轻量化和性能,所以它并没有像Ocelot那样从asp.net core上进行扩展;而是构建在BeetleX.FastHttpApi之上,主要原因BeetleX.FastHttpApi有着更轻量化和高性能的特点。虽然Bumblebee追求的是轻量化和性能, 不过具备的功能也不少,先看一下它能做什么:

640?wx_fmt=png

为了确保网关的性能,组件也重写了一个精简的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的代码并没有逻辑,只是一个简单的基础服务代码:

640?wx_fmt=png


Bumblebee网关配置

640?wx_fmt=png


Ocelot网关配置

640?wx_fmt=png

测试代码地址

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

AB测试结果

640?wx_fmt=png

bombardier测试结果

640?wx_fmt=png

总结

从两者的测试结果看,Bumblebee性能基本是Ocelot的4倍 所以精简化带来的性能提升还是非常明显的。不过实际应用中性能并不是唯一应用的指标,Ocelot虽然性能不高但也在集成上的优势何况有多少业务需要这么高的并发业务呢?如果你追求一个精简高性的网关可以考虑Bumblebee,但如果希望一个集成规模更大,有着更好的社区资料那必然是Ocelot。

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

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【无码专区11】异或2(结论 / 推式子 + 哈希hash + 大整数高精度 加减乘除重载考察)

本题已自我实现。但仍归于无码专区 problem 求 ∑i1n−1i⨁(n−i)\sum_{i1}^{n-1}i\bigoplus (n-i)∑i1n−1​i⨁(n−i)。 20%,n≤1e6;;50%,n≤1e9;;70%,n≤1e18;;100%,n≤1050020\%,n\le 1e6;;50\%,n\le 1e9;;70\%,n\le 1e18;;100\%,n\le 10^{500}20%,n≤1e6;;50%,n≤1e9;;7…

模板:常系数齐次线性递推(线性代数、多项式)

所谓常系数齐次线性递推,就是系数为常数的齐次线性递推。 (逃) 前言 sto Asta orz! 又是一个名字高大上,实则小清新的算法! 解析 考虑一个 k 次的线性递推: an∑i1kfian−ia_n\sum_{i1}^kf_…

2021牛客暑期多校训练营1

2021牛客暑期多校训练营1 题号题目知识点难度AAlice and Bob博弈论BBall Dropping计算几何签到CCut the TreeDDetermine the Photo Position签到EEscape along Water PipeFFind 3-friendly Integers真签到GGame of Swapping Numbers思维题,推导HHash FunctionFFT&a…

【无码专区12】子集和(背包dp)

此题已自我实现,但仍归于无码专区 本题在考场上就过了,所以难度并不高,发现性质即可。 problem 有 nnn 个正整数 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​,他们的和为 mmm。你想对于其每一个子集 SSS,求出他…

Penguins

Penguins 题意: 有两个20*20的地图,有障碍物,两个地图各有一个小人,左侧地图的小人要从右下角走到右上角,右侧地图的小人要从左下角走到左上角,这两个小人是镜像移动的, 左侧小人右侧小人左移…

盲盒(随机概率 + 最大公约数)

盲盒problemsolutioncodeproblem 有 2n2n2n 个盲盒,每个盲盒有一个惊喜值 aia_iai​。 打开恰好 nnn 个盲盒,获得的惊喜值为这些盲盒惊喜值的最大公约数。 求能获得的最大惊喜值。 n≤1e5,ai≤1e12n\le 1e5,a_i\le 1e12n≤1e5,ai​≤1e12。 solution…

P5354 [Ynoi2017] 由乃的 OJ(树剖、位运算)

前言 当暴力思路与题解中的“暴力”不同时,继续想优化往往就渐行渐远了… 所以当没有头绪时,要勇于跳出原有的转化! 这种位运算类型的优化似乎始终不在我的寄存器中…需要加强! 解析 不难想到按位考虑的 O(nklog⁡2n)O(nk\log…

在 .NET Core 中运行 JavaScript

一.前言在 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 .NET Core 中运行 JavaScript 呢,答案是使用 NodeServices。关于为何有在 .N…

I love exam HDU - 6968

I love exam HDU - 6968 题意: 有n个考试科目,现在有m套复习资料,每套复习资料需要花费wi天使用,用完提升ci的分数,现在还有t天复习时间,挂科数目不能超过p,问所有达到的最大分数 题解&#…

[CF1442 D] Sum(分治优化dp + 结论)

CF1442D Sumproblemsolutioncodeproblem luogu翻译 solution 部分分做法,预处理每组前缀和,暴力背包 dpdpdp 转移:dpi,jmax⁡{dpi−1,j−ksumi(k)∣0≤k≤l[i]}dp_{i,j}\max\Big\{dp_{i-1,j-k}sum_i(k)\ \Big|\ 0\le k\le l[i]\Big\}dpi,j…

P4338 [ZJOI2018]历史(树剖)(暴力)

前言 有点懊恼的一个题… 并没有其他那些ZJOI那么毒瘤,看出了关键结论,但最后维护卡在log条虚边的伞兵性质上了。 解析 第一眼:感觉根本不可做啊。 冷静一下,既然它还变态的带修,一定是可以转化成比较形式化的东西的…

Named Volume 在 MySQL 数据持久化上的基本应用

原文作者:春哥非常感谢春哥的投稿,同时也有一些感慨。初识春哥时,春哥是美术设计大咖。后不久,创业并致力于游戏开发,已有3年。从Unity3D到IOS(Swift)开发,从前端开发到后端以及容器…

Codeforces Round #723 (Div. 2)

Codeforces Round #723 (Div. 2) 题号题目知识点AMean Inequality签到BI Hate 1111思维CPotions (Easy Version)思维C1Potions (Hard Version)思维DKill Anton思维逆序对EOolimry and Suffix ArrayFMedian Queries CF1526A Mean Inequality 题意: 给你一个序列a&…

[AtCoder Regular Contest 060] E - Tak and Hotels

AT2039 [ARC060C] 高橋君とホテル / Tak and Hotelsproblemsolution - 分块code - 分块solution - 倍增code - 倍增problem luogu翻译 solution - 分块 肯定刚开始,我们很想暴力跳过去。事件复杂度取决于数据。 肯定不做把头拿给别人砍的事 这种跳法&#xff0…

模板:珂朵莉树

所谓珂朵莉树,就是珂朵莉发明的树。 (逃 前言 在数据随机且带区间推平操作时适用,此时所有操作的期望颜色段数都是 O(log⁡n)O(\log n)O(logn) 的,可以使用暴力解决即可。 暴力即优雅。 解析 利用 set 维护颜色段:…

.Netcore 2.0 Ocelot Api网关教程(7)- 限流

本文介绍Ocelot中的限流,限流允许Api网关控制一段时间内特定api的总访问次数。限流的使用非常简单,只需要添加配置即可。1、添加限流修改 configuration.json 配置文件,对 UpstreamPathTemplate 为 /webapib/values 的配置修改如下&#xff1…

cf1526 C Potions

cf1526 C Potions 题意&#xff1a; n个药剂&#xff0c;每个药剂可以加/减能量&#xff0c;一开始能量为0&#xff0c;从左往右开始进行&#xff0c;全程能量不为负&#xff0c;问最多可以使用几个药剂 本题有简单(n<2000),困难模式(n≤200000) 题解&#xff1a; 简单题…

[CF 526 F] Pudding Monsters(单调栈 + 线段树)

CF526F Pudding Monstersproblemsolutioncodeproblem luogu翻译 solution observation &#xff1a;每行每列恰好有一个棋子&#xff0c;所以如果一段区间 [l,r][l,r][l,r] 会被某个 kkk 统计&#xff0c;当且仅当这个区间内棋子纵坐标 ymax−ymin1r−l1y_{max}-y_{min}1r-l…

微信开发必看,使用.Net Core 开发微信跨平台应用

.NET Core 是一个开源通用的开发框架&#xff0c;源码由微软官方和社区共同支持。支持跨平台&#xff0c;即支持在 Window&#xff0c;macOS&#xff0c;Linux 等系统上的开发和部署&#xff0c;并且可以在硬件设备&#xff0c;云服务&#xff0c;和嵌入式/物联网方案中进行使用…

P5590 赛车游戏(差分约束)

前言 9月做的题现在不会了&#xff1f;&#xff1f;&#xff1f; 越学越拉了属于是。 解析 设 disxdis_xdisx​ 表示 1-x 的最小距离&#xff0c;那么一条 u->v 的边的边权就是 disv−disudis_v-dis_udisv​−disu​。 差分约束即可。 挂掉的坑点&#xff1a;只需要考虑…