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,一经查实,立即删除!

相关文章

在 .NET Core 中运行 JavaScript

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

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

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

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

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

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

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

CF1526 D. Kill Anton

CF1526 D. Kill Anton 题意: 给你一个由’A’,‘N’.‘T’,O’四个字符组成的字符串b,现在要求你改变b的顺序得到a,使得a通过移动回到b的步数最多。 每次移动只能移动相邻两项 题解: 官方题解说:最佳情况为相同字符…

ASP.NET Core 3.0预览版体验

目前.NET Core 3.0的版本为.NET Core 3.0 Preview 3,对应ASP.NET Core 3.0 Preview 3。ASP.NET Core 3.0 之后将不再支持.NET Framework,只运行在.NET Core 上面。ASP.NET Core 3.0 现在已经出到了第三个预览版,增加和改进了很多功能。环境准…

C# .net 中 Timeout 的处理及遇到的问题

C# 中 Timeout 的处理前言最近在项目中要实现一个功能,是关于 Timeout 的,主要是要在要在 TCP 连接建立的时间 和 整个请求完成的时间,在这两个时间层面上,如果超出了设置的时间,就抛出异常,程序中断。研究…

[CodeJam 2021 Round 3] Square Free(调整法 / 字典序最小解网络流)

CodeJam 2021 Round3 Square Freeproblemsolutioncodecode-stdproblem 神奈子是个很爱打麻将的老婆婆,有一天她把她的麻将放进了一个 nmn\times mnm 的网格图里,每个麻将可以左斜着放入网格中(如 / ),也可以右斜着&am…

ConsurrentDictionary并发字典知多少?

在上一篇文章你真的了解字典吗?一文中我介绍了Hash Function和字典的工作的基本原理.有网友在文章底部评论,说我的Remove和Add方法没有考虑线程安全问题.https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?redirectedfromMSDN&viewn…

ASP.NET Core 基于JWT的认证(二)

上一节我们对 Jwt 的一些基础知识进行了一个简单的介绍,这一节我们将详细的讲解,本次我们将详细的介绍一下 Jwt在 .Net Core 上的实际运用。.Net Core 2.2Visual Studio 2017ASP.NET Core WebAPI2在上一篇文章中,我们详细的介绍了JWT的知识,这…

Docker最全教程之Go实战,墙裂推荐(十九)

前言与其他语言相比,Go非常值得推荐和学习,真香!为什么?主要是可以直接编译成机器代码(性能优越,体积非常小,可达10来M,见实践教程图片)而且设计良好,上手门槛…

你注意到 .Net Framework 和 .Net Core 中使用 Session 的区别了吗?

在测试一个例子时发现的问题,这个示例实现的功能是刷新页面也能保持表格锁定列的状态,先看下页面的完成效果:测试中发现,几乎相同的代码:在 FineUIMvc(Net Framework)下没有问题:htt…

一键发布部署vs插件[AntDeploy]开源了

deploy to remote server by one button click功能支持docker一键部署(支持netcore)支持iis一键部署(支持netcore和framework)(支持增量发布)(支持一键回滚)(支持点火)支持windows服务一键部署(支持netcore和framework)(支持增量发布)(支持一键回滚) 使用插件前我要发布一个net…

【学习笔记】平等博弈及常见的公平博弈类型

文章目录平等博弈nim堆SG定理nim和常见的公平博弈模型bash博弈nim博弈nim-k博弈wythoff博弈扩展wythoff博弈fibonacci博弈阶梯博弈green hackenbushMisre Nim博弈Every-SGnim积翻棋子游戏游戏的积,tartan定理平等博弈 G{L∣R},LRG\{L|R\},LRG{L∣R},LR,所…

Excel催化剂开源第31波-pdf相关功能实现及类库介绍

在Excel催化剂刚推出的pdf相关功能中,反馈很热烈,不止是用户层面好多人喜欢,也听到在.NET开发群里有询问pdf在winform上展现的功能诉求,一段时间没写开源篇,生怕大家以为Excel催化剂太小气了,不再开发了&am…

[小技巧]ASP.NET Core中如何预压缩静态文件

原文地址:Pre-compressed static files with ASP.NET Core作者:Gunnar Peipman译者:Lamond Lu译文:https://www.cnblogs.com/lwqlun/p/10552131.html示例代码:https://github.com/lamondlu/CompressedStaticFileSample…

【学习笔记】简单的连通性状压DP——插头DP(不学以为是天书)

文章目录哈希链表插头DP概念括号表示法 / 最小表示法例题洛谷插头dp板题CITYParkIITonys TourEfficient Tree[CQOI2015]标识设计哈希链表 众所周知,哈希是有冲突的可能性的,而且在状态数越多,冲突的概率就越高。目前掌握的处理方案有多哈希&…

[NewLife.XCode]实体类详解

NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中。开源地址:https://github.com/…

Counting Triangles

Counting Triangles 题意: 给你一个完全图,每个边被赋值为0或1,问这个完全图中有多少个完美三角形? 完美三角形定义:三角形的三边都为0或1 题解: 正着求不好求,我们可以倒着想 不考虑完美&a…

程序员过关斩将--论商品促销代码的优雅性

点击上方蓝色字体,关注我们菜菜哥,YY说你帮她解决了几个问题,也帮我解决一个呗原来是D妹子,来坐我身边,说下情况我的项目是个电商项目,现在产品狗要给商品做活动正常呀我一个新手初来咋到顶不住压力了&…