(给DotNet加星标,提升.Net技能)
转自:smark
cnblogs.com/smark/p/10114989.html
一般应用服务都会部署到多台服务器之上
1、可以通过硬件得到更多的并发处理能力;
2、可以避免单点太故障的出现,从而确保服务7X24有效运作。
定义访问接口
组件支持通过接口的方式来描述HTTP接口服务,接口的访问方式对使用和维护都具有着极大的便利性,以下是针对以上服务描述的接口
HttpClusterApi对象是线程安全的,所以定义成静态即可;也可以根据服务分类来定义不同的HttpClusterApi(之于内部的工作原理这里就不详细解说了,可以到GitHub上过一步了解)。创建了集群接口对象之后就可以用它来创建接口实例。
同样接口实例也是线程安的,只需要创建一个即可在不同线程和方法里同时调用。其实这样创建接口后还没能正常使用,因为没有定义相应服务地址,可以通过HttpClusterApi添加不同服务地址:
以上是所有请求都负载到Host25和Host29,一般情况都不会直这样定义;*的优先级是最低的,只有没有匹配到其他url描述的情况才会匹配*
平均负载
平均负载是一种最常用的方式,主要是把并发请求平均到不同的服务器上;以下是针对employee相关请求的地址负载到5个服务上.
接下简单地测试一下
测试结果:
以上代码分别把Host29和Host30的权重设置为5其他均为10.
实现是每5秒钟检则一下信息源,集成到HttpClusterApi如下:
设置INodeSourceHandler后组件就会检配置信息,检测错误或版本没有变化的情况就不会更新配置。以下是针对测编写的一个HTTP配置服务:
详细的代码可以访问https://github.com/IKende/FastHttpApi
领取专属 10元无门槛券
私享最新 技术干货