在之前的章节里都是讲述如何在程序中使用 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
如果看到以下日志说明服务运行成功
组件默认启用端口是 9090 可以通过修改 HttpConfig.JSON 来指写其他端口或 HTTPS 服务
- "Host": "",
- "Port": 9090,
- "SSL": false,
- "CertificateFile": "",
- "CertificatePassword": "",
Web 管理配置
服务启动后就可以通过 Web 来管理网关的负载配置策略, 可能通过 http://gatewayip:9090/__admin / 来访问管理; 管理需要用户登陆, 默认用户密码是: admin 123456; 进入管理后界面如下:
进入界面后可以看到网关的处理状况, 主要包括 CPU, 并发和网络的详细使用情况. 当网关没有配置服务负载策略时访问会得到一个 5XX 的错误信息, 具体如下:
这个时候首先要配置负载的 webapi 服务, 可以根据实际情况添加对应服务的域名或 IP 地址
网关会检测服务的可用情况, 如果服务不可用会显示一个红色灯的小图标; 服务添加完成后就要进行转发路由设置
Bumblebee 是以 url 来区分转发, 可以根据自己的需求制定多个 Url 正则匹配, 每个匹配下面都可以添加 N 个负载服务.
* 是默认路由, 当没有匹配到的情况则使用该路由, 路由是长正则优先匹配; 每个路由下面都可以针对服务单独设置权重和 RPS 并发限制, 具体设置数值则和实际应用相结合. 以上设置保存后都会实时更新到网关中, 因此整个配置策略是即改即生效.
测试
以下是简单地测试一下刚部署的网关, 看一下实际处理效果
在扩展的 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