Реализация балансировки нагрузки
Дата последнего изменения: 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