Поделиться через


ActivationCountBasedPlacement Класс

Определение

Стратегия размещения, которая пытается достичь приблизительно равномерной нагрузки на основе количества недавно активных элементов grain на каждом сервере.

[System.Serializable]
public class ActivationCountBasedPlacement : Orleans.Runtime.PlacementStrategy
[System.Serializable]
[Orleans.GenerateSerializer]
[Orleans.Immutable]
[Orleans.SuppressReferenceTracking]
public sealed class ActivationCountBasedPlacement : Orleans.Runtime.PlacementStrategy
[<System.Serializable>]
type ActivationCountBasedPlacement = class
    inherit PlacementStrategy
[<System.Serializable>]
[<Orleans.GenerateSerializer>]
[<Orleans.Immutable>]
[<Orleans.SuppressReferenceTracking>]
type ActivationCountBasedPlacement = class
    inherit PlacementStrategy
Public Class ActivationCountBasedPlacement
Inherits PlacementStrategy
Public NotInheritable Class ActivationCountBasedPlacement
Inherits PlacementStrategy
Наследование
ActivationCountBasedPlacement
Атрибуты

Комментарии

Цель этой стратегии размещения заключается в размещении новых активаций grain на наименее загруженном сервере в зависимости от количества недавно загруженных объектов grain. Он включает механизм, в котором все серверы периодически публикуют общее количество активаций на всех остальных серверах. Затем директор размещения выбирает сервер, который, по прогнозам, будет иметь наименьшее количество активаций, проверяя последнее сообщенное число активаций и прогнозируя текущее число активаций на основе количества последних активаций, сделанных директором размещения на текущем сервере. Директор выбирает несколько серверов случайным образом при выполнении этого прогноза, чтобы избежать перегрузки нескольких отдельных серверов одного и того же сервера. По умолчанию два сервера выбираются случайным образом, но это значение можно настроить с помощью Orleans.Runtime.ActivationCountBasedPlacementOptions.
Этот алгоритм основан на тезисе "Сила двух вариантов в случайной балансировке нагрузки" Майкла Дэвида Миценмахера https://www.eecs.harvard.edu/~michaelm/postscripts/mythesis.pdf, а также используется в NGINX для распределенной балансировки нагрузки, как описано в статье NGINX и "Сила двух вариантов" Load-Balancing алгоритм https://www.nginx.com/blog/nginx-power-of-two-choices-load-balancing-algorithm/.
Эта стратегия размещения настраивается путем добавления атрибута ActivationCountBasedPlacementAttribute в элемент grain.

Конструкторы

ActivationCountBasedPlacement()

Стратегия размещения, которая пытается достичь приблизительно равномерной нагрузки на основе количества недавно активных элементов grain на каждом сервере.

Свойства

IsUsingGrainDirectory

Возвращает значение, указывающее, требует ли эта стратегия размещения регистрации активаций в каталоге grain.

(Унаследовано от PlacementStrategy)

Методы

Initialize(GrainProperties)

Инициализирует экземпляр этого типа, используя предоставленные свойства grain.

(Унаследовано от PlacementStrategy)
PopulateGrainProperties(IServiceProvider, Type, GrainType, Dictionary<String,String>)

Заполняет свойства grain, чтобы указать предпочтительную стратегию размещения.

(Унаследовано от PlacementStrategy)

Применяется к