开箱即用Bumblebee独立部署搭建webapi网关详解

在之前的章节里都是讲述如何在程序中使用Bumblebee来构建一个Webapi网关;但这样显然有些麻烦,毕竟很多时候可能只需要一个简单负载处理,还需要写个程序针对服务进行编写代码或配置的确是比较麻烦的事情;如果有负载方面的调整还需要重新编译部署这的确是很让人头痛的事情!为了解决这一问题这些时间针对Bumblebee写了个简单的web管理插件并编写一个服务集成进去,只需要简单地部署即可把网关搭建起来并用web管理配置负载服务。

服务安装

首先服务器要安装dotnet core 2.14或更版本,操作系统(linux,windows均可);在不同系统中安装.net core可以到https://dotnet.microsoft.com/download查看详细安装指南 下载最新版本https://github.com/IKende/Bumblebee/tree/master/bin的BumblebeeServerx.x.x.zip并解压到相应的目录中运行以下指令

  • windows

    dotnet Bumblebee.Server.dll

    run.bat
  • linux

    dotnet Bumblebee.Server.dll

    ./run.sh

如果看到以下日志说明服务运行成功

640?wx_fmt=jpeg

组件默认启用端口是9090可以通过修改HttpConfig.json来指写其他端口或HTTPS服务

    "Host": "",
"Port": 9090,
"SSL": false,
"CertificateFile": "",
"CertificatePassword": "",

Web管理配置

服务启动后就可以通过web来管理网关的负载配置策略,可能通过http://gatewayip:9090/__admin/来访问管理;管理需要用户登陆,默认用户密码是:admin 123456;进入管理后界面如下:

640?wx_fmt=jpeg

进入界面后可以看到网关的处理状况,主要包括CPU,并发和网络的详细使用情况。当网关没有配置服务负载策略时访问会得到一个5XX的错误信息,具体如下:

640?wx_fmt=jpeg

这个时候首先要配置负载的webapi服务,可以根据实际情况添加对应服务的域名或IP地址

640?wx_fmt=jpeg

网关会检测服务的可用情况,如果服务不可用会显示一个红色灯的小图标;服务添加完成后就要进行转发路由设置

640?wx_fmt=jpeg

*是默认路由,当没有匹配到的情况则使用该路由,路由是长正则优先匹配;每个路由下面都可以针对服务单独设置权重和RPS并发限制,具体设置数值则和实际应用相结合。以上设置保存后都会实时更新到网关中,因此整个配置策略是即改即生效。

测试

以下是简单地测试一下刚部署的网关,看一下实际处理效果

640?wx_fmt=jpeg

在扩展的Gateway中使用管理插件

如果基于Bumblebee定义了一个网关服务是否可以用这个简单的管理功能呢?答案是可以的,Bumblebee提供了一系列的插件接口用于提供功能扩展,只需要引用这个管理包加载它即可

Install-Package BeetleX.Bumblebee.Configuration -Version 0.5.0

安装完成后只需要在网关启动代码后加载即可

 g = new Gateway();
g.Open();
g.LoadPlugin(typeof(Bumblebee.Configuration.Management).Assembly);

如果有疑问可访问: https://github.com/IKende/Bumblebee/issues


原文地址:https://www.cnblogs.com/smark/p/10577624.html

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

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

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

相关文章

LCS(2021牛客多校4)

LCS(2021牛客多校4) 题意&#xff1a; 让你构造三个字符串s1,s2,s3&#xff0c;长度均为n,要求LCS(s1,s2)a,LCS(s2,s3)b,LCS(s1,s3)c 题解&#xff1a; 先考虑三个串互相LCS为x,y,z,且x>y>z 显然如果xy-n>z则无解&#xff0c;反之xy-n<z有解 那么就先给三个串加…

CodeForces 1616H Keep XOR Low {a^b≤x} / CodeForces gym102331 Bitwise Xor {a^b≥x}(trie树 + 计数)

文章目录CodeForces 1616H Keep XOR LowproblemsolutioncodeCodeForces gym102331 Bitwise XorproblemsolutioncodeCodeForces 1616H Keep XOR Low problem 洛谷链接 solution 虽然选的是一个子集&#xff0c;但本质还是二元限制。 这非常类似以前做过的题目&#xff0c;已…

ASP.NET Core 文件系统

静态文件 目录浏览 默认页面 MIME类型配置 实战文件服务器 紧接上一讲 中间件 之后&#xff0c;今天来我们来讲一下关于 ASP.NET Core 中静态文件服务。什么是静态文件&#xff1f;先看一下下面例子&#xff08;在客户端浏览器中通过 url 路径访问了网站的一张图片&#xff09…

[C++] iota语句的语法

头文件为 numeric #include <numeric> using namespace std;语法和 sort / lower_bound / upper_bound 等差不多&#xff0c;都是前闭后开的原则。 iota(Ax,Ay,z) &#xff1a;表示将 AAA 数组的 [x,y)[x,y)[x,y) 区间进行填充&#xff0c;从 zzz 开始&#xff0c;每填…

如何使用vs将asp.net core项目添加容器支持并发布docker镜像到私有dockerhub和添加k8s/helm管理...

这篇文章介绍一下&#xff0c;如何使用VS2017给asp.net core添加容器支持&#xff0c;并发布镜像到私有docker hub&#xff0c;然后用chart管理容器镜像的操作流程。话不多说&#xff0c;just do it.新建项目首先新建一个asp.net core项目&#xff0c;这里我新建一个WebApi默认…

Inverse Pair

Inverse Pair 题意&#xff1a; 一个数组a&#xff0c;现在构造一个数组c&#xff0c;c[i]a[i]0/1&#xff08;0或1&#xff09;&#xff0c;使得c的逆序对最少 题解&#xff1a; 如果x在x1的后面&#xff0c;我们让x这个数1,x1不变&#xff0c;就可以让逆序对少1。如果x在…

CodeForces 1610H Squid Game(延迟贪心 + 构造 + 树状数组)

problem 洛谷链接 solution 考虑重新随便钦定一个点为“根”&#xff0c;并且强制根必须是关键点。 则所有 x−yx-yx−y 不是直系祖先-子代的要求&#xff08;要求Ⅰ&#xff09;&#xff0c;即 xxx 不是 yyy 祖先&#xff0c;yyy 也不是 xxx 祖先&#xff0c;一定都被满足…

P4551 最长异或路径

P4551 最长异或路径 题意&#xff1a; 给定一棵 n 个点的带权树&#xff0c;结点下标从 1 开始到 n。寻找树中找两个结点&#xff0c;求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 题解&#xff1a; 我们指定1为根节点&#xff0c;T(u,v…

[小技巧]EF Core中如何获取上下文中操作过的实体

原文地址&#xff1a;https://www.cnblogs.com/lwqlun/p/10576443.html作者&#xff1a;Lamond Lu 源代码&#xff1a;https://github.com/lamondlu/EFCoreFindSample背景介绍当我们在工作单元(UnitOfWork)中使用EF/EF Core的时候&#xff0c;为了要保持事务&#xff0c;一个用…

CF1621G Weighted Increasing Subsequences(离散化+树状数组优化dp+栈维护后缀最大值+计数)

problem luogu-link solution 显然单独考虑每个 iii 的贡献&#xff0c;即被多少个合法上升子序列包含。 令 xmax⁡{j∣j>i∧aj>ai}x\max\{j\ |\ j>i\wedge a_j>a_i\}xmax{j ∣ j>i∧aj​>ai​}&#xff0c;则包含 iii 的合法子序列的结尾元素最远只能到…

Acwing 232. 守卫者的挑战

Acwing 232. 守卫者的挑战 题意&#xff1a; 有n个挑战&#xff0c;一开始背包容量为k&#xff0c;每次挑战有p[i]的概率成功&#xff0c;成功的话会得到一个大小为1的地图碎片或者是提升背包容量X&#xff0c;所有的地图碎片必须装在包里&#xff0c;问最后带地图离开的概率…

IdentityServer4-前后端分离之Vue

前言之前文章讲到如何使用Node.jsExpress构建JavaScript客户端&#xff0c;实现前后端分离。本节将介绍如何使用Vue实现前后端分离&#xff0c;文中介绍Vue的知识比较基础&#xff0c;适合新手学习。一、搭建Vue项目前提条件&#xff1a;安装nodejs、webpack和vue-cli。这个网上…

P1850 [NOIP2016 提高组] 换教室

P1850 [NOIP2016 提高组] 换教室 题意&#xff1a; 有2n个课安排在n个时间段上&#xff0c;每个时间段上都有两个一样的课同时在不同地方上&#xff0c;起初牛牛被所有课都被安排在Ci上课&#xff0c;另一节课在Di上课。牛牛现在想跟换到Di位置&#xff0c;它最多可以申请m节…

守列划分问题(圆排列+排列dp+结论)

problem 将正整数 1∼n1\sim n1∼n 任意划分成 mmm 个非空集合 A1,...,AmA_1,...,A_mA1​,...,Am​。 一个划分是守序的&#xff0c;当且仅当存在一个环排列 (p1,...,pm)(p_1,...,p_m)(p1​,...,pm​)&#xff0c;使得 max⁡Api>min⁡Api−1\max A_{p_i}>\min A_{p_{i-…

ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三

在上文ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署&#xff08;二&#xff09;中&#xff0c;我介绍了如何使用Azure DevOps为ASP.NET Core应用程序案例&#xff1a;tasklist搭建持续集成环境。在持续集成的过程中&#xff0c;Azure DevOps的Build Pipeline会下…

ASP.NET Core开源Web应用程序框架ABP

"作为面向服务架构(SOA)的一个变体,微服务是一种将应用程序分解成松散耦合服务的新型架构风格. 通过细粒度的服务和轻量级的协议,微服务提供了更多的模块化,使应用程序更容易理解,开发,测试,并且更容易抵抗架构侵蚀. 它使小型团队能够开发,部署和扩展各自的服务,实现开发的…

CodeForces 1517G Starry Night Camping(网络流最小割)

CodeForces 1517G Starry Night Camping problem 洛谷链接 solution 这个平行四边形的脑洞我™真的长见识了 本题最离谱的要求就是&#xff1a;平行四边形的一条边平行于 xxx 轴。 而往往这种离谱要求就是正解的途径。(((φ(◎ロ◎;)φ))) 首先不观察也能知道&#xff0c…

Acwing 307. 连通图

Acwing 307. 连通图 题意&#xff1a; 求 N 个节点的无向连通图有多少个&#xff0c;节点有标号&#xff0c;编号为 1∼N。 例如下列图示&#xff0c;三个节点的无向连通图共 4 个。 题解: 用py写 代码&#xff1a; def c(n, m):n int(n)m int(m)ret 1for i in range(…

Acwing 309. 装饰围栏

Acwing 309. 装饰围栏 题意&#xff1a; 有n个模板&#xff0c;长度分别是1到N&#xff0c;现在按照高低交错的方式排列模板&#xff0c;能到的很多种排列的方案。 每个方案都可以写作一个长度为N的序列&#xff0c;序列中的个元素是木板的长度&#xff0c;把这些序列按照字典…

CodeForces 901D Weighting a Tree(结论)

problem 洛谷链接 注意&#xff1a;保证 C[v]C[v]C[v] 的奇偶性与顶点 vvv 的度的奇偶性相同。 solution 先考虑树的情况。这是个经典问题了&#xff0c;从叶子往上推&#xff0c;对于一个点还差的边权就有这个点和其父亲的边来补足。最后判断根是否满足条件即可。 那么怎…