欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解.net core下如何簡單構(gòu)建高可用服務(wù)集群

 更新時間:2019年01月24日 10:01:02   作者:泥水佬  
一說到集群服務(wù)相信對普通開發(fā)者來說肯定想到很復(fù)雜的事情,這篇文章主要介紹了詳解.net core下如何簡單構(gòu)建高可用服務(wù)集群,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

簡述

Beetlex的Webapi集群應(yīng)用并沒有依賴于第三方服務(wù),而是由Beetlex自身完成;它主要是通過Client和策略監(jiān)控服務(wù)相結(jié)合的方式來實現(xiàn)集群化的服務(wù)負(fù)載訪問。以下是服務(wù)結(jié)構(gòu):

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

通過管理中心可以對不同的URL進行負(fù)載權(quán)重配置,默認(rèn)可以配置一個*來處理所有負(fù)載;當(dāng)?shù)竭_一定規(guī)模的情況可以針對某些URL規(guī)則來進行策略配置.中心除了可以配置策略外還提供了服務(wù)資源監(jiān)控,可以更方便地進行權(quán)重調(diào)整。

應(yīng)用

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

創(chuàng)建一個.net core控制臺項目

引用Beetlex.FastHttpApi

編寫一個簡單的HelloWorldwebapi服務(wù)

 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 };
    }
  }

運行后瀏覽器訪問一下

創(chuàng)建Client調(diào)用

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

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

創(chuàng)建調(diào)用接口代理

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

調(diào)用服務(wù)

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

集群中心配置

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

配置負(fù)載

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

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

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

從測試結(jié)果來看最后添的服務(wù),依據(jù)權(quán)重的設(shè)置來承載了相應(yīng)的并發(fā)處理。

通過以上示例,你會發(fā)現(xiàn)通過Beetlex構(gòu)建高可用的webapi集群服務(wù)是一件非常簡單的事情。

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解IdentityServer4介紹和使用

    詳解IdentityServer4介紹和使用

    在.NETCORE中更傾向于使用Identityserver4組件來構(gòu)建認(rèn)證授權(quán)服務(wù),原因是IdentityServer4?是為ASP.NET?Core系列量身打造的一款基于?OpenID?Connect?和?OAuth?2.0?認(rèn)證框架,本文重點介紹IDS4實際使用過程中涉及到的技術(shù)點,感興趣的朋友一起看看吧
    2022-07-07
  • ASP.NET中CKEditor與CKFinder的配置使用

    ASP.NET中CKEditor與CKFinder的配置使用

    這篇文章主要介紹了ASP.NET中CKEditor與CKFinder的配置使用的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • ASP.NET?Core記錄日志

    ASP.NET?Core記錄日志

    這篇文章介紹了ASP.NET?Core記錄日志的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • ASP.NET 2.0 中的創(chuàng)建母版頁

    ASP.NET 2.0 中的創(chuàng)建母版頁

    ASP.NET 2.0 中的創(chuàng)建母版頁...
    2006-09-09
  • CheckBox為CheckBoxList實現(xiàn)全選或全取消選擇(js代碼實現(xiàn))

    CheckBox為CheckBoxList實現(xiàn)全選或全取消選擇(js代碼實現(xiàn))

    在管理商品后臺是,由于CheckBoxList的選擇太多,用戶需要一個全選或全取消的功能,這樣操作起來會提高效率同時可以減少誤點等,本文將教大家如何實現(xiàn),有需要的朋友可以參考下,望本文對你有所幫助
    2013-01-01
  • ASP.NET中操作數(shù)據(jù)庫的基本步驟分享

    ASP.NET中操作數(shù)據(jù)庫的基本步驟分享

    ASP.NET中操作數(shù)據(jù)庫的基本步驟分享,學(xué)習(xí)asp.net的朋友可以參考下。
    2011-10-10
  • 幾個 ASP.NET 小技巧

    幾個 ASP.NET 小技巧

    JavaScript 調(diào)用服務(wù)器端
    2008-09-09
  • ASP.NET Core MVC學(xué)習(xí)教程之路由(Routing)

    ASP.NET Core MVC學(xué)習(xí)教程之路由(Routing)

    這篇文章主要給大家介紹了關(guān)于ASP.NET Core MVC學(xué)習(xí)教程之路由(Routing)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用ASP.NET Core MVC具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • ASP.NET中UpdatePanel與jQuery同時使用所遇問題解決

    ASP.NET中UpdatePanel與jQuery同時使用所遇問題解決

    在.NET中使用了UpdatePanel,里面的輸入框使用了jQuery的日歷選擇器,接下來介紹下兩者同時使用的一些細(xì)節(jié)及問題的解決方法,感興趣的各位可以參考下哈
    2013-03-03
  • 詳解在.net中讀寫config文件的各種方法

    詳解在.net中讀寫config文件的各種方法

    本篇文章主要介紹了在.net中讀寫config文件的各種方法,詳細(xì)的介紹各種配置文件的讀寫操作,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12

最新評論