一说到集群服务相信对普通开发者来讲确定想到很复杂的事情,如zeekeeper ,反向代理服务网关等一系列的搭建和配置等等;总得来讲须要有必定经验和规划的团队才能应用起来。在这文章里你能看到在.net core下的另外一种集群构建方案,经过Beetlex便可很是便捷地构建高可用的集群服务。git
Beetlex的Webapi集群应用并无依赖于第三方服务,而是由Beetlex自身完成;它主要是经过Client和策略监控服务相结合的方式来实现集群化的服务负载访问。如下是服务结构:github
client一旦从配置中心获取了集群的策略,就会脱离配置中心独自进行负载处理;在运行中会定时从配置中心获取更新策略,在这个过程当中即便配置中心不可用也不影响总体服务处理。如下是配置中心的策略管理:web
经过管理中心能够对不一样的URL进行负载权重配置,默承认以配置一个*
来处理全部负载;当到达必定规模的状况能够针对某些URL规则来进行策略配置.中心除了能够配置策略外还提供了服务资源监控,能够更方便地进行权重调整。api
接下来经过一个简单的示例来介绍如何经过Beetlex构建高可用的webapi集群服务.浏览器
Beetlex.FastHttpApi
HelloWorld
webapi服务
一样是构建一个控制台程序,而后引用BeetleX.FastHttpApi
,定义访问接口服务器
这样一个集群化的服务就完成,可能有人会问这明明就是单一服务,怎多是高可用的服务集群呢?接下来咱们作一系的压测并经过配置中心实现无缝地增长服务来应对测试的处理。并发
高可用集群才是咱们的目标,但实际应用中也不可能一会儿就有这样的需求,每每是随意着业务的增加集群服务的需求会慢慢显露出来;接下来就对上面的单服务进行一个压力测试,开启了40个线程进行压力测试,因为部署服务只是两核,因此一会儿就把资源压满了。app
接下来须要新的节点服务来支撑并发处理,这个时候只须要新部署一份服务,在配置中心添加节点便可。测试
有新的服务加入后,并发由原来的1W多变成3W,而这个调整是彻底不须要调整任何程序的!因为压测下来两台服务器的资源都比较吃紧,因此再添加一台服务来应对并发,但这一次添加的服务权重只有以前两台的一半。spa
从测试结果来看最后添的服务,依据权重的设置来承载了相应的并发处理。
经过以上示例,你会发现经过Beetlex
构建高可用的webapi集群服务是一件很是简单的事情。