.net core下简朴构建高可用效劳集群_玖富娱乐主管


玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。

一说到集群效劳置信对一般开发者来讲肯定想到很庞杂的事变,如zeekeeper ,反向署理效劳网关等一系列的搭建和设置装备摆设等等;总得来讲须要有肯定履历和计划的团队能力运用起来。在这文章里你能看到在.net core下的另一种集群构建计划,经由过程Beetlex便可异常便利地构建高可用的集群效劳。

简述

Beetlex的Webapi集群运用并没有依赖于第三方效劳,而是由Beetlex本身完成;它主如果经由过程Client和战略监控效劳相结合的体式格局来完成集群化的效劳负载接见。以下是效劳构造:

 

client一旦从设置装备摆设中央猎取了集群的战略,就会离开设置装备摆设中央单独举行负载处置惩罚;在运转中会准时从设置装备摆设中央猎取更新战略,在这个过程当中纵然设置装备摆设中央不可用也不影响团体效劳处置惩罚。以下是设置装备摆设中央的战略治理:

 

 

经由过程治理中央能够对分歧的URL举行负载权重设置装备摆设,默许能够设置装备摆设一个*来处置惩罚一切负载;当抵达肯定范围的状况能够针对某些URL划定规矩来举行战略设置装备摆设.中央除能够设置装备摆设战略外还供应了效劳资本监控,能够更方便地举行权重调解。

运用

接下来经由过程一个简朴的示例来引见怎样经由过程Beetlex构建高可用的webapi集群效劳.

  • 建立一个.net core控制台项目

 

  • 援用Beetlex.FastHttpApi

 

  • 编写一个简朴的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 };
        }
    }
  • 运转后浏览器接见一下

 

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。-
  • 建立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");
  • 集群中央设置装备摆设

 

如许一个集群化的效劳就完成,能够有人会问这明显就是单一效劳,怎多是高可用的效劳集群呢?接下来我们做一系的压测并经由过程设置装备摆设中央完成无缝地增添效劳来应对测试的处置惩罚。

设置装备摆设负载

高可用集群才是我们的目的,但现实运用中也不能够一会儿就有如许的需求,往往是随便着营业的增进集群效劳的需求会逐步显露出来;接下来就对上面的单效劳举行一个压力测试,开启了40个线程举行压力测试,因为布置效劳只是两核,以是一会儿就把资本压满了。

 

接下来须要新的节点效劳来支持并发处置惩罚,这个时刻只须要新布置一份效劳,在设置装备摆设中央增加节点便可。

有新的效劳到场后,并发由本来的1W多酿成3W,而这个调解是完整不须要调解任何顺序的!因为压测下来两台效劳器的资本都对照吃紧,以是再增加一台效劳来应对并发,但这一次增加的效劳权重只要之前两台的一半。

从测试效果来看末了添的效劳,根据权重的设置来承载了响应的并发处置惩罚。

经由过程以上示例,你会发明经由过程Beetlex构建高可用的webapi集群效劳是一件异常简朴的事变。

项目地点:https://github.com/IKende/FastHttpApi

集群战略治理项目地点:https://github.com/IKende/ClusterConfiguration

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。