Реализация балансировки нагрузки

Дата последнего изменения: 15 апреля 2010 г.

Применимо к: SharePoint Foundation 2010

Приложения приложений-служб обычно размещаются на нескольких компьютерах и вызываются из клиентских приложений-служб, выполняющихся на интерфейсных веб-серверах. Необходимо направлять вызовы методов прокси-сервера приложения-службы с интерфейсного веб-сервера на соответствующий сервер приложений с помощью службы балансировки нагрузки.

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