負荷分散を実装する

最終更新日: 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

関連項目

参照

SPRoundRobinServiceLoadBalancer