91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.net core下構建高可用服務集群的示例

發布時間:2021-02-08 10:15:55 來源:億速云 閱讀:265 作者:小新 欄目:開發技術

這篇文章主要介紹了.net core下構建高可用服務集群的示例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一說到集群服務相信對普通開發者來說肯定想到很復雜的事情,如zeekeeper ,反向代理服務網關等一系列的搭建和配置等等;總得來說需要有一定經驗和規劃的團隊才能應用起來。在這文章里你能看到在.net core下的另一種集群構建方案,通過Beetlex即可非常便捷地構建高可用的集群服務。

簡述

Beetlex的Webapi集群應用并沒有依賴于第三方服務,而是由Beetlex自身完成;它主要是通過Client和策略監控服務相結合的方式來實現集群化的服務負載訪問。以下是服務結構:

.net core下構建高可用服務集群的示例

client一旦從配置中心獲取了集群的策略,就會脫離配置中心獨自進行負載處理;在運行中會定時從配置中心獲取更新策略,在這個過程中即使配置中心不可用也不影響整體服務處理。以下是配置中心的策略管理:

.net core下構建高可用服務集群的示例

通過管理中心可以對不同的URL進行負載權重配置,默認可以配置一個*來處理所有負載;當到達一定規模的情況可以針對某些URL規則來進行策略配置.中心除了可以配置策略外還提供了服務資源監控,可以更方便地進行權重調整。

應用

接下來通過一個簡單的示例來介紹如何通過Beetlex構建高可用的webapi集群服務.

創建一個.net core控制臺項目

.net core下構建高可用服務集群的示例

引用Beetlex.FastHttpApi

.net core下構建高可用服務集群的示例

編寫一個簡單的HelloWorldwebapi服務

 class Program
  {
    private static BeetleX.FastHttpApi.HttpApiServer mApiServer;

    static void Main(string[] args)
    {
      mApiServer = new BeetleX.FastHttpApi.HttpApiServer();
      mApiServer.Debug();
      mApiServer.Register(typeof(Program).Assembly);
      mApiServer.Open();
      Console.Write(mApiServer.BaseServer);
      Console.Read();
    }
  }
  [Controller]
  public class Home
  {
    /// <summary>
    /// Hello Word
    /// </summary>
    /// <param name="name">string: you name</param>
    /// <returns>string</returns>
    [Get(Route = "{name}")]
    [DefaultJsonResultFilter]
    public object Hello(string name)
    {
      return new { Hello = "hello " + name, Time = DateTime.Now };
    }
  }

運行后瀏覽器訪問一下

.net core下構建高可用服務集群的示例

創建Client調用

同樣是構建一個控制臺程序,然后引用BeetleX.FastHttpApi,定義訪問接口

  public interface IDataService
  {
    [Get(Route = "hello/{name}")]
    string Hello(string name);
  }

創建調用接口代理

HttpClusterApi = new BeetleX.FastHttpApi.Clients.HttpClusterApi();
DataService = HttpClusterApi.Create<IDataService>();
await HttpClusterApi.LoadNodeSource("default", "http://localhost:8080");//加載配置服務中的default節點

調用服務

var result = DataService.Hello("henry");

集群中心配置

.net core下構建高可用服務集群的示例

這樣一個集群化的服務就完成,可能有人會問這明明就是單一服務,怎可能是高可用的服務集群呢?接下來我們做一系的壓測并通過配置中心實現無縫地增加服務來應對測試的處理。

配置負載

高可用集群才是我們的目標,但實際應用中也不可能一下子就有這樣的需求,往往是隨意著業務的增長集群服務的需求會慢慢顯露出來;接下來就對上面的單服務進行一個壓力測試,開啟了40個線程進行壓力測試,由于部署服務只是兩核,所以一下子就把資源壓滿了。

.net core下構建高可用服務集群的示例

接下來需要新的節點服務來支撐并發處理,這個時候只需要新部署一份服務,在配置中心添加節點即可。

.net core下構建高可用服務集群的示例

有新的服務加入后,并發由原來的1W多變成3W,而這個調整是完全不需要調整任何程序的!由于壓測下來兩臺服務器的資源都比較吃緊,所以再添加一臺服務來應對并發,但這一次添加的服務權重只有之前兩臺的一半。

.net core下構建高可用服務集群的示例

從測試結果來看最后添的服務,依據權重的設置來承載了相應的并發處理。

通過以上示例,你會發現通過Beetlex構建高可用的webapi集群服務是一件非常簡單的事情。

項目地址:https://github.com/IKende/FastHttpApi

集群策略管理項目地址:https://github.com/IKende/ClusterConfiguration

感謝你能夠認真閱讀完這篇文章,希望小編分享的“.net core下構建高可用服務集群的示例”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆林| 尉犁县| 霸州市| 广宁县| 类乌齐县| 西和县| 班戈县| 莒南县| 明溪县| 遵化市| 哈巴河县| 英山县| 辽宁省| 长葛市| 丹阳市| 同德县| 建德市| 永泰县| 平利县| 巴马| 大田县| 当阳市| 开平市| 油尖旺区| 洞头县| 大丰市| 鸡西市| 宁德市| 南靖县| 深水埗区| 大兴区| 宁城县| 顺平县| 蓝田县| 雷州市| 抚松县| 鄯善县| 会泽县| 木兰县| 板桥市| 奉化市|