手机版

详细解释如何在下简单地构建高可用性服务集群 净芯

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

说到集群服务,相信普通开发者一定会想到非常复杂的东西,比如zeekeeper、反向代理服务网关等等;一般来说,需要有一定经验和规划的团队来应用。在本文中,您可以看到另一个基于。网络核心。通过Beetlex构建高可用的集群服务非常方便。

素描

Beetlex的Webapi集群应用不依赖第三方服务,而是由Beetlex自己完成;主要通过客户端和策略监控服务的结合实现集群服务负载访问。以下是服务结构:

客户端一旦从配置中心获得集群策略,就会脱离配置中心,单独处理负载;在运行过程中,会定期从配置中心获取更新策略,即使在此过程中配置中心不可用,也不会影响整体的服务处理。以下是配置中心的策略管理:

可以通过管理中心为不同的URL配置负载权重,默认可以配置a *处理所有负载;当达到一定规模时,可以根据一些网址规则来配置策略。中心除了配置策略外,还提供服务资源监控,更容易调整权重。

app应用

然后,给出了一个简单的例子来说明如何通过Beetlex构建一个高可用性的webapi集群服务。

创建. net核心控制台项目

参考Beetlex。FastHttpApi

编写一个简单的HelloWorldwebapi服务

类程序{私有静态BeetleX。fashttppapi . httppapserver mApiServer;static void Main(string[]args){ mApiServer=new BeetleX。fashttppapi . httppapserver();mApiServer。debug();mApiServer。寄存器(程序的类型)。装配);mApiServer。open();控制台。Write(mApiServer。baseSERVER);控制台。read();} } [Controller]公共类Home {///summary///Hello Word////summary///param name=' name ' string 3360 you name/param///returns string/returns[Get(Route=' { name } ')][DefaultJsonResultFilter]公共对象Hello(字符串名称){ return new { Hello='hello ' name,Time=DateTime。现在};}}运行后访问浏览器

创建客户端调用

同样是构建一个控制台程序,然后引用BeetleX。定义访问接口

公共接口IDataService {[Get(Route=' hello/{ name } ')]字符串Hello(字符串名称);}创建呼叫接口代理

HttpClusterApi=new BeetleX。fashttppapi . clients . httpclusterapi();DataService=HttpClusterApi。CreateIDataService();等待HttpClusterApi。LoadNodeSource('default ',' http://localhost :8080 ');//加载配置服务中的默认节点来调用服务

var结果=DataService。你好(“亨利”);集群中心配置

这样的集群化服务才会完成,可能有人会问,明明是单一的服务,怎么可能是高可用的服务集群呢?接下来,我们进行一系列的压力测试,并通过配置中心无缝添加服务来处理测试处理。

配置负载

高可用集群是我们的目标,但在实际应用中不可能一下子有这样的需求,对集群服务的需求会随着业务的增长而逐渐显现;然后,对上述单个服务进行压力测试,并启动40个线程进行压力测试。由于部署服务只有两个核心,资源一下子就被填满了。

接下来,我们需要一个新的节点服务来支持并发处理。此时,我们只需要部署一个新的服务,并在配置中心添加节点。

随着新服务的加入,并发从1W变成了3W,这次调整不需要调整任何程序!由于压力测试后两台服务器的资源都比较紧张,所以增加了另一个服务来处理并发,但这次增加的服务权重只有前两台服务器的一半。

根据测试结果,最后添加的服务根据权重设置进行相应的并发处理。

通过上面的例子,你会发现通过Beetlex构建一个高可用性的webapi集群服务是非常简单的。

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

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

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:详细解释如何在下简单地构建高可用性服务集群 净芯是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。