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:9090
和http://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/
性能
默認登錄用戶名和密碼是admin
和123456
,建議登錄後在配置頁面上修改登錄密碼。登錄後就進入網關的基礎監控頁面 測試
當服務和路由配置好後,就可能經過這個頁面查看網關的運行狀況;主要包括網關的基礎資源信息,服務應用情況和不一樣Url
的請求狀況。因爲這個插件還在完善中因此提供的功能並不夠,只是通常的配置和監控。
服務配置比較簡單,只須要把服務地址添加進來便可;Max
是指網關鏈接到服務的最大鏈接數,能夠根據應用的併發狀況進行配置最大鏈接數;在併發中即便最大鏈接數被佔用完也不會引發服務異常,組件還針對每一個服務分配一個隊列,只有當鏈接數被分配完後而且隊列也滿的狀況纔會拒絕請求。
能夠根據不一樣的Url
制定不一樣的負載策略,策略調整保存後會立刻生效並不須要重啓服務程序。
插件是組件的核心,相關功能均可以經過插件二次擴展完成,包括現有的這個管理界面也是經過插件的方式加載進來(基礎組件並不具有可視化管理功能 )。
主要用於管理網關的插件,用於啓用,停用或配置插件相關信息
這個主要是查看網關處理的日誌,請求轉發日誌因爲量比較大這個管理插件暫沒有實現接管,使用者能夠寫插件來記錄相關API轉發的詳細日誌。
測試服務配置 E3 1230v2 16G windows 2008 Network:10Gb
測試工具 ab和bombardier
測試代碼 https://github.com/IKende/Bumblebee/tree/master/BumblebeeVSOcelot
測試內容 分別啓用500,1000和2000個鏈接進行請求併發測試