.net core微服務網關Bumblebee架設

Bumblebee是一款.net core開發基於http 1.1協議實現的開源服務網關,它可以應用到所有基於http 1.1的通訊服務上。它的重點是用於對WebAPI微服務集群服務負載和管理;作為微服務應用網關它提供了應用服務負載,故障遷移,安全控制,監控跟蹤和日誌處理等;不僅如此它強大的插件擴展功能,可以針對實業務情況進行不同的相關插件應用開發滿足實際情況的需要。

.net core微服務網關Bumblebee架設

主要功能

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

部署使用

新建一個控制檯程序後引用組件

<code>BeetleX.Bumblebee/<code>

然後編寫以下代碼

<code>        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();
}/<code>

以上代碼是在本機80端口部署一個網關服務,並把請求負載到http://192.168.2.25:9090和http://192.168.2.26:9090這樣使用比較麻煩,如果你想自己制定一些特別的需求才需要這樣做。

引用管理插件

組件很多功能可以通過插件擴展的方式引入,以下是引入一個管理插件,通過這個插件對網關進行一個可視化操作。

<code>BeetleX.Bumblebee.Configuration/<code>

這是一個可視化網關管理的插件,只要引用上即可通過插件提供的管理界面來進行網關配置

<code>    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;
o.MaxConnections = 50000;
});
gateway.Open();
gateway.LoadPlugin(typeof(Bumblebee.Configuration.Management).Assembly);
Console.Read();
}
}/<code>

引用管理插件後即可通過以下地址訪問管理界面http://localhost/__system/bumblebee/

.net core微服務網關Bumblebee架設

默認登陸用戶名和密碼是admin和123456,建議登陸後在配置頁面上修改登陸密碼。登陸後就進入網關的基礎監控頁面

.net core微服務網關Bumblebee架設

當服務和路由配置好後,就可能通過這個頁面查看網關的運行情況;主要包括網關的基礎資源信息,服務應用狀況和不同Url的請求情況。由於這個插件還在完善中所以提供的功能並不夠,只是一般的配置和監控。

服務配置簡介

.net core微服務網關Bumblebee架設

服務配置比較簡單,只需要把服務地址添加進來即可;Max是指網關連接到服務的最大連接數,可以根據應用的併發情況進行配置最大連接數;在併發中即使最大連接數被佔用完也不會引起服務異常,組件還針對每個服務分配一個隊列,只有當連接數被分配完後並且隊列也滿的情況才會拒絕請求。

路由配置簡介

.net core微服務網關Bumblebee架設

可以根據不同的Url制定不同的負載策略,策略調整保存後會馬上生效並不需要重啟服務程序。

日誌查看

這個主要是查看網關處理的日誌,請求轉發日誌由於量比較大這個管理插件暫沒有實現接管,使用者可以寫插件來記錄相關API轉發的詳細日誌。

.net core微服務網關Bumblebee架設


分享到:


相關文章: