負荷分散を実装する
最終更新日: 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