实现负载平衡
上次修改时间: 2010年4月15日
适用范围: SharePoint Foundation 2010
Service Application Framework 应用程序通常承载在多台计算机上,并可从在前端 Web 服务器上运行的服务客户端应用程序进行调用。必须使用负载平衡器将服务应用程序代理方法调用从前端 Web 服务器传送到适当的应用程序服务器。
SharePoint 2010 在 SPRoundRobinServiceLoadBalancer 类中提供了简单的负载平衡器实现。服务应用程序代理可使用内置的负载平衡器将请求传送到适当的后端服务应用程序。
创建、设置和取消设置负载平衡器
以下示例代码演示如何创建、设置负载平衡器和取消设置(从负载平衡器中移除设置)负载平衡器。
internal SampleWebServiceApplicationProxy(
string name,
SampleWebServiceProxy serviceProxy,
Uri serviceApplicationAddress)
: base(name, serviceProxy, serviceApplicationAddress)
{
// Create a new load balancer.
m_LoadBalancer = new SPRoundRobinServiceLoadBalancer(serviceApplicationAddress);
}
public override void Provision()
{
// Provision the load balancer.
m_LoadBalancer.Provision();
base.Provision();
// Ensure the provisioned load balancer
// is persisted back to the database.
this.Update();
}
public override void Unprovision()
{
// Unprovision the load balancer.
m_LoadBalancer.Unprovision();
base.Unprovision();
// Ensure the unprovisioned load balancer
// is persisted back to the database.
this.Update();
}
Friend Sub New(ByVal name As String, ByVal serviceProxy As SampleWebServiceProxy, ByVal serviceApplicationAddress As Uri)
MyBase.New(name, serviceProxy, serviceApplicationAddress)
' Create a load balancer.
m_LoadBalancer = New SPRoundRobinServiceLoadBalancer(serviceApplicationAddress)
End Sub
Public Overrides Sub Provision()
' Provision the load balancer.
m_LoadBalancer.Provision()
MyBase.Provision()
' Ensure the provisioned load balancer
' is persisted back to the database.
Me.Update()
End Sub
Public Overrides Sub Unprovision()
' Unprovision the load balancer.
m_LoadBalancer.Unprovision()
MyBase.Unprovision()
' Ensure the unprovisioned load balancer
' is persisted back to the database.
Me.Update()
End Sub