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

开箱即用Bumblebee独立部署搭建webapi网关详解的更多相关文章

  1. 【转】jumpserver 堡垒机环境搭建(图文详解)

    jumpserver 堡垒机环境搭建(图文详解)   摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装ag ...

  2. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  3. Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  4. 基于CentOS6.5下snort+barnyard2+base的入侵检测系统的搭建(图文详解)(博主推荐)

    为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物理机器环境实验室的大数 ...

  5. 基于Windows7下snort+apache+php 7 + acid(或者base) + adodb + jpgraph的入侵检测系统的搭建(图文详解)(博主推荐)

    为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习.人工智能.区域链研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物理机 ...

  6. Ubuntu下Git从搭建到使用详解

    Ubuntu下Git从搭建到使用详解 一.git的搭建 (1).sudo apt-get update (2).sudo apt-get -y install git 符:安装最新版本方法: add- ...

  7. (转)Centos7上部署openstack ocata配置详解

    原文:http://www.cnblogs.com/yaohong/p/7601470.html 随笔-124  文章-2  评论-82  Centos7上部署openstack ocata配置详解 ...

  8. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...

  9. Ubuntu14.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

随机推荐

  1. 解决ExtJs Uncaught TypeError: c is not a constructor错误

    ExtJs项目使用sencha app build编译以后,浏览时很容易抛出Uncaught TypeError: c is not a constructor的错误,而且会加载没有名称的js,例如 ...

  2. mysql 关于表与字段的增删改查操作

    1.mysql 命令登陆 形式: mysql -u用户名 -p密码 mysql -uroot -proot 2.mysql 显示数据库 形式: show databases; 3.mysql 进入某一 ...

  3. JavaScript路线

    看到知乎上有大神回答的,感觉很不错,分享下 首先要说明的是,咱现在不是高手,最多还是一个半桶水,算是入了JS的门. 谈不上经验,都是一些教训. 这个时候有人要说,“靠,你丫半桶水,凭啥教我们”.您先别 ...

  4. MVC5 框架 配置 盘古分词

    2018.5.10日记 1.将sql数据库的内容添加到索引库中, public static readonly IndexManager instance; //静态构造函数,CLR只执行一次 sta ...

  5. 将Excel表中的数据导入到数据库

    网上查到的有参考价值的就一家,自己调试发现可行.感谢原创文章:将Excel中数据导入数据库(一) using System; using System.Collections.Generic; usi ...

  6. idea 整合ssm 启动页404问题

  7. 虚拟机中克隆后使用eth0

    1.修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=mini1 1.修改ip地址以及udev记录网络规则的脚本 在CentOS中,ude ...

  8. Webpack 热部署检测不到文件的变化

    最近在用webpack开发,突然发现热部署检测不到文件的变化,相关webpack的代码并没有发生改变,而且同事们的webpack都是正常的,不能热部署严重影响我的开发效率. 网上查了一下原来 Webp ...

  9. js基础进阶--编码实用技巧(二)

    我的个人博客:http://www.xiaolongwu.cn 接上篇文章 js编码的实用技巧(一) 5.合理利用||运算符 使用||可以作为参数之外的默认值,当第一个参数返回值为false时,那么第 ...

  10. CDN的基本工作过程

    CDN的基本工作过程 使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商.跨地域的用户覆盖.由 ...