1. 程式人生 > >.net core中使用Bumblebee架設微服務閘道器

.net core中使用Bumblebee架設微服務閘道器

Bumblebee是款基於.net core開發開源的http服務閘道器,經過最近版本的完善在功能足以滿足作為微服務閘道器的需要。在微服務閘道器功能中它提供了應用服務負載,故障遷移,安全控制,監控跟蹤和日誌處理等;不僅如此它強大的外掛擴充套件功能,可以針對實業務情況進行不同的相關外掛應用開發滿足實際情況的需要。

專案地址:https://github.com/IKende/Bumblebee

 

主要功能

  • 服務管理,可以針對業務需要可以新增管理相應的服務應用
  • 動態路由管理,可以針對不同請求路徑制定不同的負載方案;負載的方案調整都具備熱更能力,並不需要重啟即可完成相關調整。
  • 負載策略多樣性,可以針對不同的路徑和服務制定不同的負載方式,包括有:動太一致性,權重負載和請求限制等.
  • 自動的負載故障和恢復遷移,元件對服務的可用性會進行一個可靠的管理,根據服務的可用性進行動態負載策略調整.
  • 完善的外掛擴充套件機制,可以制定如管理,監控,日誌和安全訪問等等功能。
  • 支援https可以制定更安全的通訊服務應用
  • 支援windows,linux等多平臺

部署使用

新建一個控制檯程式後引用元件

BeetleX.Bumblebee

然後編寫以下程式碼

        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測試結果