在之前的章节里都是讲述如何在程序中使用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);