CS系统框架 - 负载均衡技术详解(Load Balancing) (二)
作者:C/S框架网  发布日期:2011/06/04 18:26:33
  CS系统框架 - 负载均衡技术详解(Load Balancing) (二)

CS系统框架 - 负载均衡技术详解(Load Balancing) (二)



CS系统框架 - 负载均衡技术详解(Load Balancing) (一)


服务端会部署多个WebService服务器给客户端选择性连接,在客户端必须存放一个配置文件告诉程序我们的服务器位置在那,几个关键属性是ServerName,WebServiceList。


负载均衡服务器XML配置实体类:



IsAvailable:Web服务器是否可用,是否死机,是否超负荷。
IsDefaultServer: 是否预设的服务器。客户端首先尝试连接这个服务器。
ServerName:服务器编号。
ServerCaption:服务器标题,显示名称。


Web服务XML配置实体类:



WebService的连接参数:
ConfigName: WebService名称
RemoteAddress:WebService地址。




因部署多个Web服务器,而每个服务器发布的WebService接口是一致的,只是IP Address不同。客户端程序运行时读取本地XML文件,加载WebService列表。

LoadBalancingServer 与 WebServiceNode 构成一对多关系。

LoadBalancingServer --- 1 -------- *->WebServiceNode 。


Web服务的工厂:



顾名思义,SoapClientFactory类用于创建WebService的实例。通过类工厂可以选择性创建WebService实例,当系统预设的Web服务器忙碌时可选择其它可用的Web服务器。


负载均衡管理器(Load Balancing Management):




FindAnyServer:查找可用WebService服务器。
FindAnyUsableServer:查找可用WebService服务器。
FindDefaultWebServer:查找系统预设的Web服务器。
Instance:负载均衡管理器实例。
LoadBalanceServer:所有Web服务器列表。
InvokeWebMethod:动态调用Web方法。假设当前WebService不可用时系统会自动调用其它可用的WebService的方法。负载均衡关键功能之一。
LoadXML:加载本地XML配置,读取Web服务器列表。
TestChannel:测试WebService通信通道。每个WebService页都必须定义此方法,用于类工厂自动查询Web服务器调用。



销售模块的WebService SOAP客户端,此类系统自动生成。



存货模块的WebService SOAP客户端,此类系统自动生成。



客户端本地配置文件:WebService.LoadBalance.Config.xml



.\Debug\WebService.LoadBalance.Config.xml

 

 

<?xml version="1.0" encoding="utf-8" ?>

<WebServerList>

 

  <Server default="true" name="ASP.Net Development Server" caption="ASP.Net开发环境服务器">

    <endpoint name="WebServiceSalesModule" address="http://localhost:1534/WebServer/WebServiceSalesModule.asmx"/>

    <endpoint name="WebServiceInventoryModule" address="http://localhost:1534/WebServer/WebServiceInventoryModule.asmx"/>

  </Server>

 

  <Server default="false"  name="IIS Server(LocalHost)"  caption="本地IIS服务器(LocalHost) ">

    <endpoint name="WebServiceSalesModule" address="http://localhost/LoadBalancingTester/WebServiceSalesModule.asmx"/>

    <endpoint name="WebServiceInventoryModule" address="http://localhost/LoadBalancingTester/WebServiceInventoryModule.asmx"/>

  </Server>

 

  <Server default="false"  name="IIS Server2"  caption="其他机器IIS服务器 ">

    <endpoint name="WebServiceSalesModule" address="http://192.168.1.7/WebServer/WebServiceSalesModule.asmx"/>

    <endpoint name="WebServiceInventoryModule" address="http://192.168.1.7/WebServer/WebServiceInventoryModule.asmx"/>

  </Server>

 

</WebServerList>






C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

上一篇 下一篇