1. 程式人生 > >使用Bumblebee搭建微服務閘道器

使用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();
        }
    }

或直接下載編譯好的版本執行dotnet GatewayServer.dll https://github.com/IKende/Bumblebee/blob/master/bin/Bumblebee1.0.2.zip

執行後即可通過以下地址訪問管理介面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測試結果

相關推薦

使用Bumblebee搭建服務

主要功能 服務管理,可以針對業務需要可以新增管理相應的服務應用 動態路由管理,可以針對不同請求路徑制定不同的負載方案;負載的方案調整都具備熱更能力,並不需要重啟即可完成相關調整。 負載策略多樣性,可以針對不同的路徑和服務制定不同的負載方式,包括有:動太一致性,權重負載和請求限制等.

使用 Node.js 搭建服務

目錄 Node.js 是什麼 安裝 node.js Node.js 入門 Node.js 應用場景 npm 映象 使用 Node.js 搭建微服務閘道器 什麼是微服務架構 使用 Node.js 實現反向代理 參考

.net core中使用Bumblebee架設服務

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

服務從零搭建——(二)搭建api(不帶驗證)

環境準備 建立空的core2.1 api專案  演示使用名稱APIGateWay  過程參考上一篇 完成後在appsettings.json 新增節點 "Setting": { "Port": "5000" } 搭建過程 新增檔案configuration.json

服務從零搭建——(六)ocelot配置追蹤功能

butterfly 準備工作 首先下載buterfly release版本  解壓並通過命令啟動:dotnet Butterfly.Web.dll --EnableHttpCollector=true 可以採用bat檔案的方式  cd C:\Users\Lenovo\Desk

Spring Cloud【Finchley】-14 服務Zuul的搭建與使用

文章目錄 官方文件 Zuul概述 引入閘道器前後呼叫流程的變化 搭建單節點的Zuul Step1. 建立子Module microservice-gateway-zuul Step2. 新增maven依賴 Step3

Bumblebee服務之請求統一驗證

對於微服務閘道器來說,統一請求驗證是一個比較重要和常用的功能,通過閘道器驗證後臺服務就無須關注請求驗證;對於多語言平臺的服務而言制

服務springcloud—服務、Zuul簡介和Zuul服務

使用zuul構建微服務閘道器 為什麼要使用微服務閘道器 雖然微服務架構已經初具雛形,但還有一些問題————不同的微服務 一般會有不同的網路地址,而外部客戶端(例如手機APP)可能還需 呼叫多個微服務接口才能完成一個業務需求。例如一個電影購票的 手機APP,可能會呼叫多個微服務介面,才

服務

微服務閘道器作用:   API閘道器:跨一個或多個內部API提供單個統一的API入口點。通常還包括限制訪問速率和有關安全性等特點。API閘道器可以為外部消費者提供統一的入口點,而與內部微服務的數量和組成無關。        API閘道器的作用:    &

Choerodon 的服務之路(二):服務

本文是 Choerodon 豬齒魚微服務系列文章的第二篇。在《Choerodon的微服務之路(一):如何邁出關鍵的第一步》中,我們瞭解到在微服務架構中,一個完整的單體應用被拆分成多個有著獨立部署能力的業務服務,每個服務可以使用不同的程式語言,不同的儲存介質,來保持最低限度的集中式管理。本篇將

SpringCloud Zuul配置 服務 詳解

目錄 筆者在,已經介紹瞭如何配置獨立的認證中心和SSO客戶端,以及完成配套的資源伺服器配置。但是,在實際生產環境中使用會存在一些安全問題。例如所有微服務的真實地址和使用的真實埠都被暴露給了使用者,容易被不法之徒進行非法攻擊,再對外服務時如果做隔離,對

用 http-proxy架設 Cmpage 的服務

Cmpage的微服務化          Cmpage前端是個典型的單頁結構,每個業務模組從後端返回的是HTML片段,然後進行組裝渲染。假設現在有3個團隊分別開發了使用者中心(UC),客戶管理系統(CRM),人事考勤系統(HR),每個系統會有若干業務模組,系統內外的資料有關

Hystrix斷路器在服務中的應用

前文回顧 在之前的一篇文章:微服務閘道器Zuul遷移到Spring Cloud Gateway,我們講解了如何從Zuul遷移到新的元件:Spring Cloud Gateway,以及擴充套件了微服務閘道器的功能,包括限流過濾器、斷路器過濾器等。然而很多讀者在使用的時候反饋,使用POSTMAN傳送GET請求測

Spring Cloud之Zuul(一):編寫Zuul服務

主題 編寫Zuul微服務閘道器 前言 閘道器的概念大家可以點選這裡瞭解,或者等待米兜好文章更新。本例項主要是將Zuul註冊到Eureka Server上,並做一些案例測試。 內容 1.新建專案 cloud-register-gateway-zuul微服務 2.引入依賴

SpringCloud(3) :服務(Zuul)

在一個實際業務當中通常都會呼叫多個服務介面,而每個服務介面的ip/埠or域名都不一樣,這樣在實際呼叫中會變得十分繁瑣,而且當服務介面ip/埠or域名修改後,業務系統也需要進行相應的修改,大大增加了開發維護成本,所以一般的做法都是在多個服務介面上游再新增一層,我們

LindDotNetCore~Ocelot實現服務

回到目錄 閘道器在硬體裡有自己的定義,而在軟體架構裡也有自己的解釋,它就是所有請求的入口,請求打到閘道器上,經過處理和加工,再返回給客戶端,這個處理過程中當然就是閘道器的核心,也是Ocelot的核心,我們可以把使用者授權,校驗,快取,認證等很多關注點在閘道器中實現! 定義 API閘道器是一個

服務解決方案和使用總結

一.什麼是閘道器 1.1 什麼是閘道器 API Gateway(APIGW / API 閘道器),顧名思義,是出現在系統邊界上的一個面向API的、序列集中式的強管控服務,這裡的邊界是企業IT系統的邊界,可以理解為企業級應用防火牆,主要起到隔離外部訪問與內部系統的作用。在微服務概念的流行之前,API閘道

八、Zuul構建服務

1、為什麼要使用微服務閘道器     1.1、沒有閘道器的話,存在的問題         客戶端要多次請求不同微服務,增加客戶端複雜性         存在跨域請求問題 &n

Hystrix斷路器在服務中的應用(Spring Cloud Gateway)

前文回顧 在之前的一篇文章:微服務閘道器Zuul遷移到Spring Cloud Gateway,我們講解了如何從Zuul遷移到新的元件:Spring Cloud Gateway,以及擴充套件了微服務閘道器的功能,包括限流過濾器、斷路器過濾器等。然而很多讀者在使用的時候反饋,使用POS

服務Zuul遷移到Spring Cloud Gateway

Spring Cloud Netflix Zuul是由Netflix開源的API閘道器,在微服務架構下,閘道器作為對外的門戶,實現動態路由、監控、授權、安全、排程等功能。 Zuul基於servlet 2.5(使用3.x),使用阻塞API。 它不支援任何長連線,如