.net core中使用Bumblebee架设微服务网关

Bumblebee是款基于.net core开发开源的http服务网关,通过最近版本的完善在功能足以知足做为微服务网关的须要。在微服务网关功能中它提供了应用服务负载,故障迁移,安全控制,监控跟踪和日志处理等;不只如此它强大的插件扩展功能,能够针对实业务状况进行不一样的相关插件应用开发知足实际状况的须要。linux

项目地址:https://github.com/IKende/Bumblebeegit

 

主要功能

  • 服务管理,能够针对业务须要能够添加管理相应的服务应用
  • 动态路由管理,能够针对不一样请求路径制定不一样的负载方案;负载的方案调整都具有热更能力,并不须要重启便可完成相关调整。
  • 负载策略多样性,能够针对不一样的路径和服务制定不一样的负载方式,包括有:动太一致性,权重负载和请求限制等.
  • 自动的负载故障和恢复迁移,组件对服务的可用性会进行一个可靠的管理,根据服务的可用性进行动态负载策略调整.
  • 完善的插件扩展机制,能够制定如管理,监控,日志和安全访问等等功能。
  • 支持https能够制定更安全的通信服务应用
  • 支持windows,linux等多平台

部署使用

新建一个控制台程序后引用组件github

BeetleX.Bumblebee

而后编写如下代码windows

        private static Gateway g;
        static void Main(string[] args)
        {
            g = new Gateway();
            g.HttpOptions(h =>
            {
                h.Port = 80;
            });
            g.SetServer("http://192.168.2.25:9090").AddUrl("*", 0, 0);
            g.SetServer("http://192.168.2.26:9090").AddUrl("*", 0, 0);
            g.Open();
            Console.Read();
        }

以上代码是在本机80端口部署一个网关服务,并把请求负载到http://192.168.2.25:9090http://192.168.2.26:9090这样使用比较麻烦,若是你想本身制定一些特别的需求才须要这样作。安全

引用管理插件

组件不少功能能够经过插件扩展的方式引入,如下是引入一个管理插件,经过这个插件对网关进行一个可视化操做。并发

BeetleX.Bumblebee.Configuration

这是一个可视化网关管理的插件,只要引用上便可经过插件提供的管理界面来进行网关配置微服务

    class Program
    {
        static Gateway gateway;
        static void Main(string[] args)
        {
            gateway = new Gateway();
            gateway.HttpOptions(o =>
            {
                o.Port = 80;
                o.LogToConsole = true;
                o.LogLevel = BeetleX.EventArgs.LogType.Error;
            });
            gateway.Open();
            gateway.LoadPlugin(typeof(Bumblebee.Configuration.Management).Assembly);
            Console.Read();
        }
    }

或直接下载编译好的版本https://github.com/IKende/Bumblebee/blob/master/bin/Bumblebee1.0.2.zip执行dotnet GatewayServer.dll 工具

运行后便可经过如下地址访问管理界面http://localhost/__system/bumblebee/ 性能

 默认登录用户名和密码是admin123456,建议登录后在配置页面上修改登录密码。登录后就进入网关的基础监控页面 测试

 

当服务和路由配置好后,就可能经过这个页面查看网关的运行状况;主要包括网关的基础资源信息,服务应用情况和不一样Url的请求状况。因为这个插件还在完善中因此提供的功能并不够,只是通常的配置和监控。

服务配置简介

 

服务配置比较简单,只须要把服务地址添加进来便可;Max是指网关链接到服务的最大链接数,能够根据应用的并发状况进行配置最大链接数;在并发中即便最大链接数被占用完也不会引发服务异常,组件还针对每一个服务分配一个队列,只有当链接数被分配完后而且队列也满的状况才会拒绝请求。

路由配置简介

 

能够根据不一样的Url制定不一样的负载策略,策略调整保存后会立刻生效并不须要重启服务程序。

插件管理

插件是组件的核心,相关功能均可以经过插件二次扩展完成,包括现有的这个管理界面也是经过插件的方式加载进来(基础组件并不具有可视化管理功能 )。

主要用于管理网关的插件,用于启用,停用或配置插件相关信息

 

日志查看

这个主要是查看网关处理的日志,请求转发日志因为量比较大这个管理插件暂没有实现接管,使用者能够写插件来记录相关API转发的详细日志。 

性能测试对比(Bumblebee vs Ocelot)

测试服务配置 E3 1230v2 16G windows 2008 Network:10Gb

测试工具 ab和bombardier

测试代码 https://github.com/IKende/Bumblebee/tree/master/BumblebeeVSOcelot

测试内容 分别启用500,1000和2000个链接进行请求并发测试

ab测试结果

bombardier测试结果

相关文章
相关标签/搜索